diff -uNr dmd-0.174/dmd/html/d/abi.html dmd-0.175/dmd/html/d/abi.html
--- dmd-0.174/dmd/html/d/abi.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/abi.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
-
Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/acknowledgements.html dmd-0.175/dmd/html/d/acknowledgements.html
--- dmd-0.174/dmd/html/d/acknowledgements.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/acknowledgements.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/arrays.html dmd-0.175/dmd/html/d/arrays.html
--- dmd-0.174/dmd/html/d/arrays.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/arrays.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/ascii-table.html dmd-0.175/dmd/html/d/ascii-table.html
--- dmd-0.174/dmd/html/d/ascii-table.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/ascii-table.html 2006-11-15 02:42:26.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/attribute.html dmd-0.175/dmd/html/d/attribute.html
--- dmd-0.174/dmd/html/d/attribute.html 2006-11-14 14:32:34.000000000 +0100
+++ dmd-0.175/dmd/html/d/attribute.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 14:32:33 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/builtin.html dmd-0.175/dmd/html/d/builtin.html
--- dmd-0.174/dmd/html/d/builtin.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/builtin.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/changelog1.html dmd-0.175/dmd/html/d/changelog1.html
--- dmd-0.174/dmd/html/d/changelog1.html 2006-11-09 21:47:48.000000000 +0100
+++ dmd-0.175/dmd/html/d/changelog1.html 2006-11-15 02:42:26.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Thu Nov 9 21:47:45 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/changelog.html dmd-0.175/dmd/html/d/changelog.html
--- dmd-0.174/dmd/html/d/changelog.html 2006-11-14 15:06:26.000000000 +0100
+++ dmd-0.175/dmd/html/d/changelog.html 2006-11-25 00:31:54.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 15:06:24 2006
+
Last update Sat Nov 25 00:31:52 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
@@ -190,6 +192,8 @@
+ What's new for D 0.175
+
What's new for D 0.174
What's new for D 0.173
@@ -273,13 +277,76 @@
+
+
+
+Nov 25, 2006
+
+New/Changed Features
+
+ Added == super to IsExpression s.
+ Class variables declared with scope are now allocated
+ on the stack.
+
+
+Bugs Fixed
+
+ Fixed Bugzilla 222 : Internal error: ..\ztc\cod1.c 1656" with && and ||
+ Fixed Bugzilla 228 : Crash on inferring function literal return type after prior errors
+ Fixed Bugzilla 311 : Object files missing certain template instantiations
+ Fixed Bugzilla 331 : performance bug in std.uni.toUniLower / std.uni.toUniUpper
+ Incorporated Bugzilla 332 : typesafe variadic functions and lazy argument support for std.demangle
+ Fixed Bugzilla 343 : Compile error using mixin containing struct
+ Fixed Bugzilla 349 : Function matching with enums is erratic
+ Fixed Bugzilla 352 : Assertion failure: expression.c 753 - concatenating strings in a template calling another template
+ Fixed Bugzilla 353 : null passed as a char[] template argument, concatenated with a string literal, is a non-constant expression
+ Fixed Bugzilla 354 : Internal error: e2ir.c 772 with bad template use
+ Fixed Bugzilla 355 : ICE from enum : nonexistent type
+ Incorporated Bugzilla 363 XHTML support
+ Fixed Bugzilla 364 : Mysterious access violation when using delegate()[1]... parameter
+ Fixed Bugzilla 373 : Spec problems with TypeInfo: error and omission.
+ Fixed Bugzilla 378 : Assertion failure: '0' on line 216 in file 'init.c'
+ Fixed Bugzilla 379 : wrong thisptr type in typedef'ed struct
+ Fixed Bugzilla 380 : cannot use typeof(*this) in a static context
+ Fixed Bugzilla 384 : Different behaviour when compiling as separate object files
+ Fixed Bugzilla 389 : Cannot link to std.path.altsep
+ Fixed Bugzilla 429 : Unable to distinguish between empty and uninitialized dynamic arrays
+ Fixed Bugzilla 433 : A deprecated, same-named alias screws up resolution of imports
+ Fixed Bugzilla 443 : assignment in return when using cdouble is broken
+ Fixed Bugzilla 444 : Inside a foreach with delegates, void return does not compile
+ Fixed Bugzilla 446 : Anonymous class and "return without calling constructor"
+ Fixed Bugzilla 460 : Assertion failure: '!needThis()' on line 143 in file 'tocsym.c'
+ Fixed Bugzilla 464 : 64bit clean dchar.c
+ Fixed Bugzilla 465 : errors when trying to use static templated methods
+ Fixed Bugzilla 466 : dmd prevent this from link, if so please prevent it from compiling
+ Fixed Bugzilla 467 : double inheritance from the same interface
+ Fixed Bugzilla 468 : argument wrongfully identified as type in template instantiation
+ Fixed Bugzilla 471 : Protection attributes of mixin instances are applied in a wrong scope.
+ Fixed Bugzilla 475 : DMD segfault on recursive variadic template
+ Fixed Bugzilla 476 : DMD doesn't resolve its location properly on Windows
+ Fixed Bugzilla 478 : can't compare arrayliteral statically with variable
+ Fixed Bugzilla 480 : too many initializers error message doesn't give line number
+ Fixed Bugzilla 485 : Writefln on null object should not trigger access error.
+ Fixed Bugzilla 488 : regression: recursive typeof segmentfaults
+ Fixed Bugzilla 490 : Static struct initializer without static attribute aborts dmd with assertion
+ Fixed Bugzilla 525 : can't use array variable in typetuple index
+ Fixed D.announce/5464
+
+ Fixed problem with ForStatement scope.
+
+
+
+
-Nov 9, 2006
+Nov 14, 2006
New/Changed Features
@@ -306,8 +373,8 @@
Fixed Bugzilla 462 : invalid typeinfo usage breaks dmd compiler
Fixed Bugzilla 469 : Incorrect documentation in std.date
Fixed Bugzilla 477 : Malformed URL in documentation
+ Issues error now for Bugzilla 483 : ICE-invalid with tuple. mangleof.
Fixed Bugzilla 484 : Compiler segfault with template variadic used as a template alias
- Issues error now for Bugzilla 485 : ICE-invalid with tuple. mangleof.
Fixed Bugzilla 489 : .classinfo not working with fqn
Fixed Bugzilla 491 : Create directories necessary for writing files when using -Dd and -Hd option
Fixed Bugzilla 494 : template's variadic argument can't use as type
@@ -315,6 +382,7 @@
Incorporated Bugzilla 496 : frontend: 64-bit cleanup of utf_decode
Incorporated Bugzilla 497 : frontend: 64-bit cleanup of sprintf buffer sizes
Fixed Bugzilla 498 : Signal mixins need to import
+ Fixed Bugzilla 499 : Multiple overrides of the destructor when using signals
Incorporated D/43595 suggestions
Fixed D/43649 crash
Fixed D.bugs/8856
diff -uNr dmd-0.174/dmd/html/d/class.html dmd-0.175/dmd/html/d/class.html
--- dmd-0.174/dmd/html/d/class.html 2006-11-14 15:06:26.000000000 +0100
+++ dmd-0.175/dmd/html/d/class.html 2006-11-21 00:04:46.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 15:06:24 2006
+
Last update Tue Nov 21 00:04:44 2006
@@ -813,11 +813,17 @@
new (1,2) Foo(a);
- Derived classes inherit any allocator from their base class,
+ Derived classes inherit any allocator from their base class,
if one is not specified.
-
+
+
+ The class allocator is not called if the instance is created
+ on the stack.
+
- See also Explicit Class Instance Allocation .
+ See also
+ Explicit Class Instance Allocation .
+
@@ -841,18 +847,24 @@
delete f;
- is executed, and f is a reference to a class instance that has
+ is executed, and f is a reference to a class instance that has
a deallocator, the deallocator is called with a pointer to the
class instance after the destructor (if any) for the class is
called. It is the responsibility of the deallocator to free
the memory.
-
+
- Derived classes inherit any deallocator from their base class,
+ Derived classes inherit any deallocator from their base class,
if one is not specified.
-
+
- See also Explicit Class Instance Allocation .
+ The class allocator is not called if the instance is created
+ on the stack.
+
+
+ See also
+ Explicit Class Instance Allocation .
+
diff -uNr dmd-0.174/dmd/html/d/code_coverage.html dmd-0.175/dmd/html/d/code_coverage.html
--- dmd-0.174/dmd/html/d/code_coverage.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/code_coverage.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/comparison.html dmd-0.175/dmd/html/d/comparison.html
--- dmd-0.174/dmd/html/d/comparison.html 2006-11-10 00:04:00.000000000 +0100
+++ dmd-0.175/dmd/html/d/comparison.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Fri Nov 10 00:03:58 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/cppcomplex.html dmd-0.175/dmd/html/d/cppcomplex.html
--- dmd-0.174/dmd/html/d/cppcomplex.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/cppcomplex.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/cppdbc.html dmd-0.175/dmd/html/d/cppdbc.html
--- dmd-0.174/dmd/html/d/cppdbc.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/cppdbc.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/cppstrings.html dmd-0.175/dmd/html/d/cppstrings.html
--- dmd-0.174/dmd/html/d/cppstrings.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/cppstrings.html 2006-11-15 02:42:22.000000000 +0100
@@ -33,7 +33,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/cpptod.html dmd-0.175/dmd/html/d/cpptod.html
--- dmd-0.174/dmd/html/d/cpptod.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/cpptod.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/ctod.html dmd-0.175/dmd/html/d/ctod.html
--- dmd-0.174/dmd/html/d/ctod.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/ctod.html 2006-11-15 02:42:22.000000000 +0100
@@ -33,7 +33,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/dbc.html dmd-0.175/dmd/html/d/dbc.html
--- dmd-0.174/dmd/html/d/dbc.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/dbc.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/dcompiler.html dmd-0.175/dmd/html/d/dcompiler.html
--- dmd-0.174/dmd/html/d/dcompiler.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/dcompiler.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/ddoc.html dmd-0.175/dmd/html/d/ddoc.html
--- dmd-0.174/dmd/html/d/ddoc.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/ddoc.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/declaration.html dmd-0.175/dmd/html/d/declaration.html
--- dmd-0.174/dmd/html/d/declaration.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/declaration.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
@@ -231,6 +231,7 @@
extern
final
override
+ scope
static
synchronized
@@ -375,15 +376,6 @@
The implicitly inferred type is statically bound
to the declaration at compile time, not run time.
- An implicit type inference for a class reference is not
- an auto declaration, even if the auto storage class is used:
-
-class C { ... }
-
-auto c = new C(); auto C d = new C();
-
diff -uNr dmd-0.174/dmd/html/d/dlinks.html dmd-0.175/dmd/html/d/dlinks.html
--- dmd-0.174/dmd/html/d/dlinks.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/dlinks.html 2006-11-15 02:42:22.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/dll.html dmd-0.175/dmd/html/d/dll.html
--- dmd-0.174/dmd/html/d/dll.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/dll.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/download.html dmd-0.175/dmd/html/d/download.html
--- dmd-0.174/dmd/html/d/download.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/download.html 2006-11-15 02:42:26.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:57 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/dstyle.html dmd-0.175/dmd/html/d/dstyle.html
--- dmd-0.174/dmd/html/d/dstyle.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/dstyle.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/entity.html dmd-0.175/dmd/html/d/entity.html
--- dmd-0.174/dmd/html/d/entity.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/entity.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/enum.html dmd-0.175/dmd/html/d/enum.html
--- dmd-0.174/dmd/html/d/enum.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/enum.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/errors.html dmd-0.175/dmd/html/d/errors.html
--- dmd-0.174/dmd/html/d/errors.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/errors.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/exception-safe.html dmd-0.175/dmd/html/d/exception-safe.html
--- dmd-0.174/dmd/html/d/exception-safe.html 2006-11-10 00:04:00.000000000 +0100
+++ dmd-0.175/dmd/html/d/exception-safe.html 2006-11-15 02:42:26.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Fri Nov 10 00:03:58 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/expression.html dmd-0.175/dmd/html/d/expression.html
--- dmd-0.174/dmd/html/d/expression.html 2006-11-09 19:47:06.000000000 +0100
+++ dmd-0.175/dmd/html/d/expression.html 2006-11-21 00:04:46.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Thu Nov 9 19:47:04 2006
+
Last update Tue Nov 21 00:04:43 2006
@@ -138,8 +138,8 @@
tested, or ignored. Expressions can also have side effects.
StringLiterals :
- StringLiteral
- StringLiterals StringLiteral
+ StringLiteral
+ StringLiterals StringLiteral
ArgumentList :
AssignExpression
@@ -752,37 +752,51 @@
function after the size argument.
+ If a NewExpression is used as an initializer for
+ a function local variable with scope storage class,
+ and the ArgumentList to new is empty, then
+ the instance is allocated on the stack rather than the heap
+ or using the class specific allocator.
+
+
Delete Expressions
DeleteExpression :
delete UnaryExpression
- If the UnaryExpression is a class object reference, and
+ If the UnaryExpression is a class object reference, and
there is a destructor for that class, the destructor
is called for that object instance.
-
+
- Next, if the UnaryExpression is a class object reference, or
+ Next, if the UnaryExpression is a class object reference, or
a pointer to a struct instance, and the class or struct
has overloaded operator delete, then that operator delete is called
for that class object instance or struct instance.
-
+
- Otherwise, the garbage collector is called to immediately free the
+ Otherwise, the garbage collector is called to immediately free the
memory allocated for the class instance or struct instance.
If the garbage collector was not used to allocate the memory for
the instance, undefined behavior will result.
-
+
- If the UnaryExpression is a pointer or a dynamic array,
+ If the UnaryExpression is a pointer or a dynamic array,
the garbage collector is called to immediately release the
memory.
If the garbage collector was not used to allocate the memory for
the instance, undefined behavior will result.
-
+
- The pointer, dynamic array, or reference is set to null
+ The pointer, dynamic array, or reference is set to null
after the delete is performed.
+
+
+ If UnaryExpression is a variable allocated
+ on the stack, the class destructor (if any) is called for that
+ instance. Neither the garbage collector nor any class deallocator
+ is called.
+
Cast Expressions
@@ -1424,6 +1438,9 @@
interface
Type
+ super
+ TypeTuple of base classes and interfaces
+
enum
the base type of the enum
diff -uNr dmd-0.174/dmd/html/d/faq.html dmd-0.175/dmd/html/d/faq.html
--- dmd-0.174/dmd/html/d/faq.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/faq.html 2006-11-20 00:21:22.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Mon Nov 20 00:21:20 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
@@ -226,7 +228,7 @@
When should I use a foreach loop rather than a for?
Why cannot D code directly call existing C++ code?
Why doesn't D use reference counting for garbage collection?
-
+ Isn't garbage collection slow and non-deterministic?
@@ -866,6 +868,19 @@
handles.
+
+
+ Yes, but all dynamic memory management is slow and
+ non-deterministic, including malloc/free.
+ If you talk to the people who actually do real time
+ software, they don't use malloc/free precisely because they are not
+ deterministic. They preallocate all data.
+ However, the use of GC instead of malloc enables advanced language
+ constructs (especially, more powerful array syntax), which greatly
+ reduce the number of memory allocations which need to be made.
+ This can mean that GC is actually faster than explict management.
+
+
diff -uNr dmd-0.174/dmd/html/d/float.html dmd-0.175/dmd/html/d/float.html
--- dmd-0.174/dmd/html/d/float.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/float.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/function.html dmd-0.175/dmd/html/d/function.html
--- dmd-0.174/dmd/html/d/function.html 2006-11-07 01:22:06.000000000 +0100
+++ dmd-0.175/dmd/html/d/function.html 2006-11-21 00:36:42.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 7 01:22:05 2006
+
Last update Tue Nov 21 00:36:41 2006
@@ -524,9 +524,10 @@
_arguments gives the number of arguments and the type
of each, enabling the creation of typesafe variadic functions.
-class FOO { }
+class Foo { int x = 3; }
+class Bar { long y = 4; }
-void foo(int x, ...)
+void printargs(int x, ...)
{
printf("%d arguments\n" , _arguments .length);
for (int i = 0; i < _arguments .length; i++)
@@ -534,28 +535,34 @@
if (_arguments [i] == typeid (int ))
{
- int j = *cast (int *)_argptr ;
- _argptr += int .sizeof;
+ int j = *cast (int *)_argptr;
+ _argptr += int .sizeof;
printf("\t%d\n" , j);
}
else if (_arguments [i] == typeid (long ))
{
- long j = *cast (long *)_argptr ;
- _argptr += long .sizeof;
+ long j = *cast (long *)_argptr;
+ _argptr += long .sizeof;
printf("\t%lld\n" , j);
}
else if (_arguments [i] == typeid (double ))
{
- double d = *cast (double *)_argptr ;
- _argptr += double .sizeof;
+ double d = *cast (double *)_argptr;
+ _argptr += double .sizeof;
printf("\t%g\n" , d);
}
- else if (_arguments [i] == typeid (FOO))
+ else if (_arguments [i] == typeid (Foo))
{
- FOO f = *cast (FOO*)_argptr ;
- _argptr += FOO.sizeof;
+ Foo f = *cast (Foo*)_argptr;
+ _argptr += Foo.sizeof;
printf("\t%p\n" , f);
}
+ else if (_arguments [i] == typeid (Bar))
+ {
+ Bar b = *cast (Bar*)_argptr;
+ _argptr += Bar.sizeof;
+ printf("\t%p\n" , b);
+ }
else
assert (0);
}
@@ -563,25 +570,28 @@
void main()
{
- FOO f = new FOO();
+ Foo f = new Foo();
+ Bar b = new Bar();
printf("%p\n" , f);
- foo(1, 2, 3L, 4.5, f);
+ printargs(1, 2, 3L, 4.5, f, b);
}
which prints:
-00870FD0
-4 arguments
+00870FE0
+5 arguments
int
- 2
+ 2
long
- 3
+ 3
double
- 4.5
-FOO
- 00870FD0
+ 4.5
+Foo
+ 00870FE0
+Bar
+ 00870FD0
To protect against the vagaries of stack layouts on different
diff -uNr dmd-0.174/dmd/html/d/future.html dmd-0.175/dmd/html/d/future.html
--- dmd-0.174/dmd/html/d/future.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/future.html 2006-11-20 14:18:56.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Mon Nov 20 14:18:54 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
@@ -188,12 +190,14 @@
Future Directions
- The following new features for D are planned, but the details have
- not been worked out:
+
The release of D version 1.0 is scheduled for Jan 1, 2007.
+
+
The following new features for D are planned for post 1.0,
+ but the details have
+ not been worked out:
Template inheritance.
Array operations.
- Array literal expressions.
diff -uNr dmd-0.174/dmd/html/d/garbage.html dmd-0.175/dmd/html/d/garbage.html
--- dmd-0.174/dmd/html/d/garbage.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/garbage.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/glossary.html dmd-0.175/dmd/html/d/glossary.html
--- dmd-0.174/dmd/html/d/glossary.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/glossary.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/html.html dmd-0.175/dmd/html/d/html.html
--- dmd-0.174/dmd/html/d/html.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/html.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/htod.html dmd-0.175/dmd/html/d/htod.html
--- dmd-0.174/dmd/html/d/htod.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/htod.html 2006-11-15 02:42:26.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/htomodule.html dmd-0.175/dmd/html/d/htomodule.html
--- dmd-0.174/dmd/html/d/htomodule.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/htomodule.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/iasm.html dmd-0.175/dmd/html/d/iasm.html
--- dmd-0.174/dmd/html/d/iasm.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/iasm.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/index.html dmd-0.175/dmd/html/d/index.html
--- dmd-0.174/dmd/html/d/index.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/index.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/interface.html dmd-0.175/dmd/html/d/interface.html
--- dmd-0.174/dmd/html/d/interface.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/interface.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/interfaceToC.html dmd-0.175/dmd/html/d/interfaceToC.html
--- dmd-0.174/dmd/html/d/interfaceToC.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/interfaceToC.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:23 2006
diff -uNr dmd-0.174/dmd/html/d/intro.html dmd-0.175/dmd/html/d/intro.html
--- dmd-0.174/dmd/html/d/intro.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/intro.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/lazy-evaluation.html dmd-0.175/dmd/html/d/lazy-evaluation.html
--- dmd-0.174/dmd/html/d/lazy-evaluation.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/lazy-evaluation.html 2006-11-15 02:42:26.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:57 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/lex.html dmd-0.175/dmd/html/d/lex.html
--- dmd-0.174/dmd/html/d/lex.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/lex.html 2006-11-18 14:13:40.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Fri Nov 17 23:25:52 2006
@@ -342,7 +342,7 @@
Token :
Identifier
- StringLiteral
+ StringLiteral
CharacterLiteral
IntegerLiteral
FloatLiteral
@@ -378,7 +378,6 @@
>>>
!
!=
- !==
!<>
!<>=
!<
@@ -399,7 +398,6 @@
$
=
==
- ===
*
*=
%
@@ -441,7 +439,7 @@
Identifiers can be arbitrarily long, and are case sensitive.
Identifiers starting with __ (two underscores) are reserved.
-
+
StringLiteral :
WysiwygString
diff -uNr dmd-0.174/dmd/html/d/lisp-java-d.html dmd-0.175/dmd/html/d/lisp-java-d.html
--- dmd-0.174/dmd/html/d/lisp-java-d.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/lisp-java-d.html 2006-11-15 02:42:26.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:57 2006
+
Last update Wed Nov 15 02:42:24 2006
diff -uNr dmd-0.174/dmd/html/d/memory.html dmd-0.175/dmd/html/d/memory.html
--- dmd-0.174/dmd/html/d/memory.html 2006-11-14 14:53:52.000000000 +0100
+++ dmd-0.175/dmd/html/d/memory.html 2006-11-20 23:53:28.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 14:53:50 2006
+
Last update Mon Nov 20 23:53:27 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
@@ -582,54 +584,29 @@
- Allocating class instances on the stack using an
- overridden new and delete is useful for temporary
- objects that are to be automatically deallocated when the function
- is exited. No special handling is needed to account for
- function termination via stack unwinding from an exception.
- To work, they must not have destructors, since such a destructor
- would never get called.
-
+
Class instances are normally allocated on the garbage
+ collected heap. However, if they:
- To have a class allocated on the stack that has a destructor, this
- is the same as a declaration with the
- scope attribute .
- Although the current implementation does not put such objects on
- the stack, future ones can.
+ are allocated as local symbols in a function
+ are allocated using new
+ use new with no arguments
+ have the scope storage class
+
-import std.c.stdlib;
+ then they are allocated on the stack. This is more efficient
+ than doing an allocate/free cycle on the instance. But be
+ careful that any reference to the object does not survive
+ the return of the function.
-class Foo
-{
- new (size_t sz, void *p)
- {
- return p;
- }
+class C { ... }
- delete (void * p)
- {
- assert (0);
- }
-}
-
-void test()
-{
- Foo f = new (alloca(Foo.classinfo.init.length)) Foo;
- ...
-}
-
+scope c = new C();
-
diff -uNr dmd-0.174/dmd/html/d/mixin.html dmd-0.175/dmd/html/d/mixin.html
--- dmd-0.174/dmd/html/d/mixin.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/mixin.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/module.html dmd-0.175/dmd/html/d/module.html
--- dmd-0.174/dmd/html/d/module.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/module.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/operatoroverloading.html dmd-0.175/dmd/html/d/operatoroverloading.html
--- dmd-0.174/dmd/html/d/operatoroverloading.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/operatoroverloading.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/overview.html dmd-0.175/dmd/html/d/overview.html
--- dmd-0.174/dmd/html/d/overview.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/overview.html 2006-11-15 02:42:22.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/phobos/object.html dmd-0.175/dmd/html/d/phobos/object.html
--- dmd-0.174/dmd/html/d/phobos/object.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/object.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/phobos.html dmd-0.175/dmd/html/d/phobos/phobos.html
--- dmd-0.174/dmd/html/d/phobos/phobos.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/phobos.html 2006-11-25 00:31:30.000000000 +0100
@@ -29,7 +29,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -95,6 +95,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_base64.html dmd-0.175/dmd/html/d/phobos/std_base64.html
--- dmd-0.174/dmd/html/d/phobos/std_base64.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_base64.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_bitarray.html dmd-0.175/dmd/html/d/phobos/std_bitarray.html
--- dmd-0.174/dmd/html/d/phobos/std_bitarray.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_bitarray.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_boxer.html dmd-0.175/dmd/html/d/phobos/std_boxer.html
--- dmd-0.174/dmd/html/d/phobos/std_boxer.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_boxer.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_fenv.html dmd-0.175/dmd/html/d/phobos/std_c_fenv.html
--- dmd-0.174/dmd/html/d/phobos/std_c_fenv.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_fenv.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_math.html dmd-0.175/dmd/html/d/phobos/std_c_math.html
--- dmd-0.174/dmd/html/d/phobos/std_c_math.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_math.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_compiler.html dmd-0.175/dmd/html/d/phobos/std_compiler.html
--- dmd-0.174/dmd/html/d/phobos/std_compiler.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_compiler.html 2006-11-25 00:31:28.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -98,6 +98,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_conv.html dmd-0.175/dmd/html/d/phobos/std_conv.html
--- dmd-0.174/dmd/html/d/phobos/std_conv.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_conv.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_cover.html dmd-0.175/dmd/html/d/phobos/std_cover.html
--- dmd-0.174/dmd/html/d/phobos/std_cover.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_cover.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_process.html dmd-0.175/dmd/html/d/phobos/std_c_process.html
--- dmd-0.174/dmd/html/d/phobos/std_c_process.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_process.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_cpuid.html dmd-0.175/dmd/html/d/phobos/std_cpuid.html
--- dmd-0.174/dmd/html/d/phobos/std_cpuid.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_cpuid.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_stdarg.html dmd-0.175/dmd/html/d/phobos/std_c_stdarg.html
--- dmd-0.174/dmd/html/d/phobos/std_c_stdarg.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_stdarg.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_stddef.html dmd-0.175/dmd/html/d/phobos/std_c_stddef.html
--- dmd-0.174/dmd/html/d/phobos/std_c_stddef.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_stddef.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_stdio.html dmd-0.175/dmd/html/d/phobos/std_c_stdio.html
--- dmd-0.174/dmd/html/d/phobos/std_c_stdio.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_stdio.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_stdlib.html dmd-0.175/dmd/html/d/phobos/std_c_stdlib.html
--- dmd-0.174/dmd/html/d/phobos/std_c_stdlib.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_stdlib.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_cstream.html dmd-0.175/dmd/html/d/phobos/std_cstream.html
--- dmd-0.174/dmd/html/d/phobos/std_cstream.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_cstream.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_string.html dmd-0.175/dmd/html/d/phobos/std_c_string.html
--- dmd-0.174/dmd/html/d/phobos/std_c_string.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_string.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_time.html dmd-0.175/dmd/html/d/phobos/std_c_time.html
--- dmd-0.174/dmd/html/d/phobos/std_c_time.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_time.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_ctype.html dmd-0.175/dmd/html/d/phobos/std_ctype.html
--- dmd-0.174/dmd/html/d/phobos/std_ctype.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_ctype.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_c_wcharh.html dmd-0.175/dmd/html/d/phobos/std_c_wcharh.html
--- dmd-0.174/dmd/html/d/phobos/std_c_wcharh.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_c_wcharh.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:29 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_date.html dmd-0.175/dmd/html/d/phobos/std_date.html
--- dmd-0.174/dmd/html/d/phobos/std_date.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_date.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_demangle.html dmd-0.175/dmd/html/d/phobos/std_demangle.html
--- dmd-0.174/dmd/html/d/phobos/std_demangle.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_demangle.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_file.html dmd-0.175/dmd/html/d/phobos/std_file.html
--- dmd-0.174/dmd/html/d/phobos/std_file.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_file.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_format.html dmd-0.175/dmd/html/d/phobos/std_format.html
--- dmd-0.174/dmd/html/d/phobos/std_format.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_format.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_gc.html dmd-0.175/dmd/html/d/phobos/std_gc.html
--- dmd-0.174/dmd/html/d/phobos/std_gc.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_gc.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_intrinsic.html dmd-0.175/dmd/html/d/phobos/std_intrinsic.html
--- dmd-0.174/dmd/html/d/phobos/std_intrinsic.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_intrinsic.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_math.html dmd-0.175/dmd/html/d/phobos/std_math.html
--- dmd-0.174/dmd/html/d/phobos/std_math.html 2006-11-14 12:05:28.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_math.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:27 2006
+
Last update Sat Nov 25 00:31:25 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_md5.html dmd-0.175/dmd/html/d/phobos/std_md5.html
--- dmd-0.174/dmd/html/d/phobos/std_md5.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_md5.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_mmfile.html dmd-0.175/dmd/html/d/phobos/std_mmfile.html
--- dmd-0.174/dmd/html/d/phobos/std_mmfile.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_mmfile.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_openrj.html dmd-0.175/dmd/html/d/phobos/std_openrj.html
--- dmd-0.174/dmd/html/d/phobos/std_openrj.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_openrj.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_outbuffer.html dmd-0.175/dmd/html/d/phobos/std_outbuffer.html
--- dmd-0.174/dmd/html/d/phobos/std_outbuffer.html 2006-11-14 12:05:28.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_outbuffer.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:27 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_outofmemory.html dmd-0.175/dmd/html/d/phobos/std_outofmemory.html
--- dmd-0.174/dmd/html/d/phobos/std_outofmemory.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_outofmemory.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_path.html dmd-0.175/dmd/html/d/phobos/std_path.html
--- dmd-0.174/dmd/html/d/phobos/std_path.html 2006-11-14 12:05:28.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_path.html 2006-11-25 00:31:26.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:27 2006
+
Last update Sat Nov 25 00:31:25 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_process.html dmd-0.175/dmd/html/d/phobos/std_process.html
--- dmd-0.174/dmd/html/d/phobos/std_process.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_process.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_random.html dmd-0.175/dmd/html/d/phobos/std_random.html
--- dmd-0.174/dmd/html/d/phobos/std_random.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_random.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_regexp.html dmd-0.175/dmd/html/d/phobos/std_regexp.html
--- dmd-0.174/dmd/html/d/phobos/std_regexp.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_regexp.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_signals.html dmd-0.175/dmd/html/d/phobos/std_signals.html
--- dmd-0.174/dmd/html/d/phobos/std_signals.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_signals.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_socket.html dmd-0.175/dmd/html/d/phobos/std_socket.html
--- dmd-0.174/dmd/html/d/phobos/std_socket.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_socket.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:29 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
@@ -974,50 +976,6 @@
-class TcpSocket : std.socket.Socket;
-
-TcpSocket is a shortcut class for a TCP Socket.
-
-
-this(AddressFamily family );
-
-Constructs a blocking TCP Socket.
-
-
-
-this();
-
-Constructs a blocking TCP Socket.
-
-
-
-this(Address connectTo );
-
-Constructs a blocking TCP Socket and connects to an InternetAddress.
-
-
-
-
-
-class UdpSocket : std.socket.Socket;
-
-UdpSocket is a shortcut class for a UDP Socket.
-
-
-this(AddressFamily family );
-
-Constructs a blocking UDP Socket.
-
-
-
-this();
-
-Constructs a blocking UDP Socket.
-
-
-
-
-
diff -uNr dmd-0.174/dmd/html/d/phobos/std_socketstream.html dmd-0.175/dmd/html/d/phobos/std_socketstream.html
--- dmd-0.174/dmd/html/d/phobos/std_socketstream.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_socketstream.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_stdint.html dmd-0.175/dmd/html/d/phobos/std_stdint.html
--- dmd-0.174/dmd/html/d/phobos/std_stdint.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_stdint.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_stdio.html dmd-0.175/dmd/html/d/phobos/std_stdio.html
--- dmd-0.174/dmd/html/d/phobos/std_stdio.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_stdio.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_stream.html dmd-0.175/dmd/html/d/phobos/std_stream.html
--- dmd-0.174/dmd/html/d/phobos/std_stream.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_stream.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:27 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_string.html dmd-0.175/dmd/html/d/phobos/std_string.html
--- dmd-0.174/dmd/html/d/phobos/std_string.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_string.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:26 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_system.html dmd-0.175/dmd/html/d/phobos/std_system.html
--- dmd-0.174/dmd/html/d/phobos/std_system.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_system.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_thread.html dmd-0.175/dmd/html/d/phobos/std_thread.html
--- dmd-0.174/dmd/html/d/phobos/std_thread.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_thread.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_traits.html dmd-0.175/dmd/html/d/phobos/std_traits.html
--- dmd-0.174/dmd/html/d/phobos/std_traits.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_traits.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
@@ -165,6 +167,27 @@
+template BaseTypeTuple (A)
+Get a TypeTuple of the base class and base interfaces of
+ this class or interface.
+
+Example:
+ import std.traits, std.typetuple, std.stdio;
+ interface I { }
+ class A { }
+ class B : A, I { }
+
+ void main()
+ {
+ alias BaseTypeTuple !(B) TL;
+ writefln(typeid (TL)); }
+
+
+
+
+
+
diff -uNr dmd-0.174/dmd/html/d/phobos/std_typetuple.html dmd-0.175/dmd/html/d/phobos/std_typetuple.html
--- dmd-0.174/dmd/html/d/phobos/std_typetuple.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_typetuple.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_uni.html dmd-0.175/dmd/html/d/phobos/std_uni.html
--- dmd-0.174/dmd/html/d/phobos/std_uni.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_uni.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_uri.html dmd-0.175/dmd/html/d/phobos/std_uri.html
--- dmd-0.174/dmd/html/d/phobos/std_uri.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_uri.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_utf.html dmd-0.175/dmd/html/d/phobos/std_utf.html
--- dmd-0.174/dmd/html/d/phobos/std_utf.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_utf.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_windows_charset.html dmd-0.175/dmd/html/d/phobos/std_windows_charset.html
--- dmd-0.174/dmd/html/d/phobos/std_windows_charset.html 2006-11-14 12:05:32.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_windows_charset.html 2006-11-25 00:31:30.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:30 2006
+
Last update Sat Nov 25 00:31:28 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_zip.html dmd-0.175/dmd/html/d/phobos/std_zip.html
--- dmd-0.174/dmd/html/d/phobos/std_zip.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_zip.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/phobos/std_zlib.html dmd-0.175/dmd/html/d/phobos/std_zlib.html
--- dmd-0.174/dmd/html/d/phobos/std_zlib.html 2006-11-14 12:05:30.000000000 +0100
+++ dmd-0.175/dmd/html/d/phobos/std_zlib.html 2006-11-25 00:31:28.000000000 +0100
@@ -28,7 +28,7 @@
- Last update Tue Nov 14 12:05:28 2006
+
Last update Sat Nov 25 00:31:27 2006
@@ -94,6 +94,8 @@
std.string
std.system
std.thread
+ std.traits
+ std.typetuple
std.uni
std.uri
std.utf
diff -uNr dmd-0.174/dmd/html/d/portability.html dmd-0.175/dmd/html/d/portability.html
--- dmd-0.174/dmd/html/d/portability.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/portability.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/pragma.html dmd-0.175/dmd/html/d/pragma.html
--- dmd-0.174/dmd/html/d/pragma.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/pragma.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/pretod.html dmd-0.175/dmd/html/d/pretod.html
--- dmd-0.174/dmd/html/d/pretod.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/pretod.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/property.html dmd-0.175/dmd/html/d/property.html
--- dmd-0.174/dmd/html/d/property.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/property.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/rationale.html dmd-0.175/dmd/html/d/rationale.html
--- dmd-0.174/dmd/html/d/rationale.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/rationale.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/regular-expression.html dmd-0.175/dmd/html/d/regular-expression.html
--- dmd-0.174/dmd/html/d/regular-expression.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/regular-expression.html 2006-11-15 02:42:26.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:57 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/statement.html dmd-0.175/dmd/html/d/statement.html
--- dmd-0.174/dmd/html/d/statement.html 2006-11-10 02:00:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/statement.html 2006-11-18 02:44:56.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Fri Nov 10 02:00:54 2006
+
Last update Sat Nov 18 02:44:54 2006
@@ -427,7 +427,7 @@
test, and increment clauses.
ForStatement :
- for ( Initialize Test ; Increment ) NoScopeNonEmptyStatement
+ for ( Initialize Test ; Increment ) ScopeStatement
Initialize :
;
@@ -442,7 +442,7 @@
Expression
- Initializer is executed.
+ Initializer is executed.
Test is evaluated and must have a type that
can be converted to a boolean. If it's true the
statement is executed. After the statement is executed,
@@ -450,15 +450,17 @@
Then Test is evaluated again, and if true the
statement is executed again. This continues until the
Test evaluates to false.
-
+
- A BreakStatement will exit the loop.
+ A BreakStatement will exit the loop.
A ContinueStatement
will transfer directly to the Increment .
-
+
+ A ForStatement creates a new scope.
If Initializer declares a variable, that variable's scope
- extends through the end of NoScopeNonEmptyStatement . For example:
+ extends through the end of the for statement. For example:
+
for (int i = 0; i < 10; i++)
foo(i);
diff -uNr dmd-0.174/dmd/html/d/struct.html dmd-0.175/dmd/html/d/struct.html
--- dmd-0.174/dmd/html/d/struct.html 2006-11-14 14:53:52.000000000 +0100
+++ dmd-0.175/dmd/html/d/struct.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Tue Nov 14 14:53:50 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/template.html dmd-0.175/dmd/html/d/template.html
--- dmd-0.174/dmd/html/d/template.html 2006-11-09 15:56:24.000000000 +0100
+++ dmd-0.175/dmd/html/d/template.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Thu Nov 9 15:56:23 2006
+
Last update Wed Nov 15 02:42:22 2006
@@ -686,7 +686,7 @@
A Tuple whose elements consist entirely of types is
called a TypeTuple .
- A Tuple whose elements consist entirely of types is
+ A Tuple whose elements consist entirely of expressions is
called an ExpressionTuple .
diff -uNr dmd-0.174/dmd/html/d/templates-revisited.html dmd-0.175/dmd/html/d/templates-revisited.html
--- dmd-0.174/dmd/html/d/templates-revisited.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/templates-revisited.html 2006-11-15 02:42:26.000000000 +0100
@@ -33,7 +33,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -105,6 +105,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/tuple.html dmd-0.175/dmd/html/d/tuple.html
--- dmd-0.174/dmd/html/d/tuple.html 1970-01-01 01:00:00.000000000 +0100
+++ dmd-0.175/dmd/html/d/tuple.html 2006-11-20 00:21:22.000000000 +0100
@@ -0,0 +1,581 @@
+
+
+
+
+
+
+
+
+
+
+D Programming Language - Tuples
+
+
+
+
+
+
+
+
+
+
+
Last update Mon Nov 20 00:21:21 2006
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tuples
+
+
A tuple is a sequence of elements. Those elements can
+ be types, expressions, or aliases.
+ The number and elements of a tuple are fixed at compile time;
+ they cannot be changed at run time.
+
+
+
Tuples have characteristics of both
+ structs and arrays. Like structs, the tuple
+ elements can be of different types. Like arrays,
+ the elements can be accessed via indexing.
+
+
+
So how does one construct a tuple? There isn't a specific
+ tuple literal syntax. But since variadic template parameters
+ create tuples, we can define a template to create one:
+
+
+
template Tuple(E...)
+{
+ alias E Tuple;
+}
+
+
+
and it's used like:
+
+
Tuple!(int , long , float ) Tuple!(3, 7, 'c') Tuple!(int , 8)
+
+
In order to symbolically refer to a tuple, use an alias:
+
+
alias Tuple!(float , float , 3) TP;
+
+
Tuples can be used as arguments to templates, and if so
+ they are 'flattened' out into a list of arguments.
+ This makes it straightforward to append a new element to
+ an existing tuple or concatenate tuples:
+
+
alias Tuple!(TP, 8) TR; alias Tuple!(TP, TP) TS;
+
+
Tuples share many characteristics with arrays.
+ For starters, the number of elements in a tuple can
+ be retrieved with the .length property:
+
+
TP.length
+
+
Tuples can be indexed:
+
+
TP[1] f = TP[2];
+
+
and even sliced:
+
+
alias TP[0..length-1] TQ;
+
+
Yes, length is defined within the [ ]s.
+ There is one restriction: the indices for indexing and slicing
+ must be evaluatable at compile time.
+
+
void foo(int i)
+{
+ TQ[i] x; }
+
+
+
These make it simple to produce the 'head' and 'tail'
+ of a tuple. The head is just TP[0], the tail
+ is TP[1 .. length].
+ Given the head and tail, mix with a little conditional
+ compilation, and we can implement some classic recursive
+ algorithms with templates.
+ For example, this template returns a tuple consisting
+ of the trailing type arguments TL with the first occurrence
+ of the first type argument T removed:
+
+
template Erase(T, TL...)
+{
+ static if (TL.length == 0)
+ alias TL Erase;
+ else static if (is (T == TL[0]))
+ alias TL[1 .. length] Erase;
+ else
+ alias Tuple!(TL[0], Erase!(T, TL[1 .. length])) Erase;
+}
+
+
+
Type Tuples
+
+
If a tuple's elements are solely types,
+ it is called a TypeTuple
+ (sometimes called a type list).
+ Since function parameter lists are a list of types,
+ a type tuple can be retrieved from them.
+ One way is using an IsExpression :
+
+
+
int foo(int x, long y);
+
+...
+if (is (foo P == function ))
+ alias P TP;
+
+
+
This is generalized in the template
+ std.traits .ParameterTypeTuple:
+
+
+
import std.traits;
+
+...
+alias ParameterTypeTuple!(foo) TP;
+
+
TypeTuple s can be used to declare a function:
+
+
float bar(TP);
+
+
If implicit function template instantiation is being done,
+ the type tuple representing the parameter types can be deduced:
+
+
int foo(int x, long y);
+
+void Bar(R, P...)(R function (P))
+{
+ writefln("return type is " , typeid (R));
+ writefln("parameter types are " , typeid (P));
+}
+
+...
+Bar(&foo);
+
+
+
Prints:
+
+
return type is int
+parameter types are (int,long)
+
+
+
Type deduction can be used to create a function that
+ takes an arbitrary number and type of arguments:
+
+
void Abc(P...)(P p)
+{
+ writefln("parameter types are " , typeid (P));
+}
+
+Abc(3, 7L, 6.8);
+
+
+
Prints:
+
+
parameter types are (int,long,double)
+
+
+
For a more comprehensive treatment of this aspect, see
+ Variadic Templates .
+
+
+
+
Expression Tuples
+
+
If a tuple's elements are solely expressions,
+ it is called an ExpressionTuple .
+ The Tuple template can be used to create one:
+
+
+
alias Tuple!(3, 7L, 6.8) ET;
+
+...
+writefln(ET); writefln(ET[1]); writefln(ET[1..length]);
+
+
It can be used to create an array literal:
+
+
alias Tuple!(3, 7, 6) AT;
+
+...
+int [] a = [AT];
+
+
The data fields of a struct or class can be
+ turned into an expression tuple using the .tupleof
+ property:
+
+
struct S { int x; long y; }
+
+void foo(int a, long b)
+{
+ writefln(a, b);
+}
+
+...
+S s;
+s.x = 7;
+s.y = 8;
+foo(s.x, s.y); foo(s.tupleof); s.tupleof[1] = 9;
+s.tupleof[0] = 10;
+foo(s.tupleof); s.tupleof[2] = 11;
+
+
A type tuple can be created from the data fields
+ of a struct using typeof :
+
+
writefln(typeid (typeof (S.tupleof)));
+
+
This is encapsulated in the template
+ std.traits .FieldTypeTuple.
+
+
+
Looping
+
+
While the head-tail style of functional programming works
+ with tuples, it's often more convenient to use a loop.
+ The ForeachStatement can loop over either TypeTuple s
+ or ExpressionTuple s.
+
+
+
alias Tuple!(int , long , float ) TL;
+foreach (i, T; TL)
+ writefln("TL[%d] = " , i, typeid (T));
+
+alias Tuple!(3, 7L, 6.8) ET;
+foreach (i, E; ET)
+ writefln("ET[%d] = " , i, E);
+
+
+
Prints:
+
+
TL[0] = int
+TL[1] = long
+TL[2] = float
+ET[0] = 3
+ET[1] = 7
+ET[2] = 6.8
+
+
+
Tuple Declarations
+
+
A variable declared with a TypeTuple becomes an
+ ExpressionTuple :
+
+
alias Tuple!(int , long ) TL;
+
+void foo(TL tl)
+{
+ writefln(tl, tl[1]);
+}
+
+foo(1, 6L);
+
+
Putting It All Together
+
+
These capabilities can be put together to implement
+ a template that will encapsulate all the arguments to
+ a function, and return a delegate that will call the function
+ with those arguments.
+
+
R delegate () CurryAll(Dummy=void , R, U...)(R function (U) dg, U args)
+{
+ struct Foo
+ {
+ typeof (dg) dg_m;
+ U args_m;
+
+ R bar()
+ {
+ return dg_m(args_m);
+ }
+ }
+
+ Foo* f = new Foo;
+ f.dg_m = dg;
+ foreach (i, arg; args)
+ f.args_m[i] = arg;
+ return &f.bar;
+}
+
+R delegate () CurryAll(R, U...)(R delegate (U) dg, U args)
+{
+ struct Foo
+ {
+ typeof (dg) dg_m;
+ U args_m;
+
+ R bar()
+ {
+ return dg_m(args_m);
+ }
+ }
+
+ Foo* f = new Foo;
+ f.dg_m = dg;
+ foreach (i, arg; args)
+ f.args_m[i] = arg;
+ return &f.bar;
+}
+
+
+void main()
+{
+ static int plus(int x, int y, int z)
+ {
+ return x + y + z;
+ }
+
+ auto plus_two = CurryAll(&plus, 2, 3, 4);
+ printf("%d\n" , plus_two());
+ assert (plus_two() == 9);
+
+ int minus(int x, int y, int z)
+ {
+ return x + y + z;
+ }
+
+ auto minus_two = CurryAll(&minus, 7, 8, 9);
+ printf("%d\n" , minus_two());
+ assert (minus_two() == 24);
+}
+
+
+
The reason for the Dummy parameter is that one
+ cannot overload two templates with the same parameter list.
+ So we make them different by giving one a dummy parameter.
+
+
+
Future Directions
+
+
Return tuples from functions.
+ Use operators on tuples, like =, +=, etc.
+ Have tuple properties like .init which will apply
+ the property to each of the tuple members.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Copyright © 1999-2006 by Digital Mars, All Rights Reserved
+ |
+Page generated by
Ddoc . |
+
Comments
+
+
+
+
+
diff -uNr dmd-0.174/dmd/html/d/type.html dmd-0.175/dmd/html/d/type.html
--- dmd-0.174/dmd/html/d/type.html 2006-11-01 22:28:54.000000000 +0100
+++ dmd-0.175/dmd/html/d/type.html 2006-11-15 02:42:22.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:53 2006
+
Last update Wed Nov 15 02:42:21 2006
diff -uNr dmd-0.174/dmd/html/d/variadic-function-templates.html dmd-0.175/dmd/html/d/variadic-function-templates.html
--- dmd-0.174/dmd/html/d/variadic-function-templates.html 2006-11-07 01:22:08.000000000 +0100
+++ dmd-0.175/dmd/html/d/variadic-function-templates.html 2006-11-15 02:42:26.000000000 +0100
@@ -33,7 +33,7 @@
- Last update Tue Nov 7 01:22:06 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -105,6 +105,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/version.html dmd-0.175/dmd/html/d/version.html
--- dmd-0.174/dmd/html/d/version.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/version.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:54 2006
+
Last update Wed Nov 15 02:42:22 2006
diff -uNr dmd-0.174/dmd/html/d/warnings.html dmd-0.175/dmd/html/d/warnings.html
--- dmd-0.174/dmd/html/d/warnings.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/warnings.html 2006-11-15 02:42:26.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/wc.html dmd-0.175/dmd/html/d/wc.html
--- dmd-0.174/dmd/html/d/wc.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/wc.html 2006-11-15 02:42:24.000000000 +0100
@@ -32,7 +32,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -104,6 +104,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/windbg.html dmd-0.175/dmd/html/d/windbg.html
--- dmd-0.174/dmd/html/d/windbg.html 2006-11-01 22:28:58.000000000 +0100
+++ dmd-0.175/dmd/html/d/windbg.html 2006-11-15 02:42:26.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:56 2006
+
Last update Wed Nov 15 02:42:24 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+
diff -uNr dmd-0.174/dmd/html/d/windows.html dmd-0.175/dmd/html/d/windows.html
--- dmd-0.174/dmd/html/d/windows.html 2006-11-01 22:28:56.000000000 +0100
+++ dmd-0.175/dmd/html/d/windows.html 2006-11-15 02:42:24.000000000 +0100
@@ -31,7 +31,7 @@
- Last update Wed Nov 1 22:28:55 2006
+
Last update Wed Nov 15 02:42:23 2006
@@ -103,6 +103,8 @@
Variadic Templates
+ Tuples
+