Fixed circular dependency between std.datetime and std.encoding.

This commit is contained in:
jmdavis 2011-06-11 00:40:21 -07:00
parent 55493bc90b
commit 48355e6230
4 changed files with 66 additions and 35 deletions

View file

@ -157,10 +157,10 @@ MAIN = $(ROOT)/emptymain.d
STD_MODULES = $(addprefix std/, algorithm array base64 bigint bitmanip \
compiler complex concurrency container contracts conv cpuid \
cstream ctype date datetime datebase dateparse demangle \
encoding exception file format functional getopt gregorian \
json loader math mathspecial md5 metastrings mmfile numeric \
outbuffer parallelism path perf process random range regex \
regexp signals socket socketstream stdint stdio stdiobase \
encoding encodingbase exception file format functional getopt \
gregorian json loader math mathspecial md5 metastrings mmfile \
numeric outbuffer parallelism path perf process random range \
regex regexp signals socket socketstream stdint stdio stdiobase \
stream string syserror system traits typecons typetuple uni \
uri utf variant xml zip zlib)

View file

@ -2379,11 +2379,6 @@ abstract class EncodingScheme
*/
class EncodingSchemeASCII : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeASCII");
}
const
{
override string[] names()
@ -2449,6 +2444,12 @@ class EncodingSchemeASCII : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeASCII_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeASCII");
}
/**
EncodingScheme to handle Latin-1
@ -2465,11 +2466,6 @@ class EncodingSchemeASCII : EncodingScheme
*/
class EncodingSchemeLatin1 : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeLatin1");
}
const
{
override string[] names()
@ -2533,6 +2529,11 @@ class EncodingSchemeLatin1 : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeLatin1_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeLatin1");
}
/**
EncodingScheme to handle Windows-1252
@ -2541,11 +2542,6 @@ class EncodingSchemeLatin1 : EncodingScheme
*/
class EncodingSchemeWindows1252 : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeWindows1252");
}
const
{
override string[] names()
@ -2601,6 +2597,11 @@ class EncodingSchemeWindows1252 : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeWindows1252_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeWindows1252");
}
/**
EncodingScheme to handle UTF-8
@ -2609,11 +2610,6 @@ class EncodingSchemeWindows1252 : EncodingScheme
*/
class EncodingSchemeUtf8 : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf8");
}
const
{
override string[] names()
@ -2669,6 +2665,11 @@ class EncodingSchemeUtf8 : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeUtf8_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf8");
}
/**
EncodingScheme to handle UTF-16 in native byte order
@ -2678,11 +2679,6 @@ class EncodingSchemeUtf8 : EncodingScheme
*/
class EncodingSchemeUtf16Native : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf16Native");
}
const
{
version(LittleEndian) { enum string NAME = "UTF-16LE"; }
@ -2747,6 +2743,11 @@ class EncodingSchemeUtf16Native : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeUtf16Native_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf16Native");
}
/**
EncodingScheme to handle UTF-32 in native byte order
@ -2756,11 +2757,6 @@ class EncodingSchemeUtf16Native : EncodingScheme
*/
class EncodingSchemeUtf32Native : EncodingScheme
{
shared static this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf32Native");
}
const
{
version(LittleEndian) { enum string NAME = "UTF-32LE"; }
@ -2825,6 +2821,11 @@ class EncodingSchemeUtf32Native : EncodingScheme
}
}
extern(C) void std_encoding_EncodingSchemeUtf32Native_static_this()
{
EncodingScheme.register("std.encoding.EncodingSchemeUtf32Native");
}
//=============================================================================

29
std/encodingbase.d Normal file
View file

@ -0,0 +1,29 @@
// Written in the D programming language.
/++
The only purpose of this module is to do the static construction for
std.encoding, to eliminate cyclic construction errors.
Copyright: Copyright Digital Mars 2011 -
License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
Authors: Jonathan M Davis
Source: $(PHOBOSSRC std/_encodingbase.d)
+/
module std.encodingbase;
extern(C) void std_encoding_EncodingSchemeASCII_static_this();
extern(C) void std_encoding_EncodingSchemeLatin1_static_this();
extern(C) void std_encoding_EncodingSchemeWindows1252_static_this();
extern(C) void std_encoding_EncodingSchemeUtf8_static_this();
extern(C) void std_encoding_EncodingSchemeUtf16Native_static_this();
extern(C) void std_encoding_EncodingSchemeUtf32Native_static_this();
shared static this()
{
std_encoding_EncodingSchemeASCII_static_this();
std_encoding_EncodingSchemeLatin1_static_this();
std_encoding_EncodingSchemeWindows1252_static_this();
std_encoding_EncodingSchemeUtf8_static_this();
std_encoding_EncodingSchemeUtf16Native_static_this();
std_encoding_EncodingSchemeUtf32Native_static_this();
}

View file

@ -124,6 +124,7 @@ SRCS_3 = std\variant.d \
std\stream.d std\socket.d std\socketstream.d \
std\perf.d std\container.d std\conv.d \
std\zip.d std\cstream.d std\loader.d \
std\encodingbase.d \
std\__fileinit.d \
std\datebase.d \
std\regex.d \
@ -271,7 +272,7 @@ SRC_STD= std\zlib.d std\zip.d std\stdint.d std\container.d std\conv.d std\utf.d
std\json.d std\xml.d std\encoding.d std\bigint.d std\concurrency.d \
std\range.d std\stdiobase.d std\parallelism.d \
std\regex.d std\datebase.d \
std\__fileinit.d std\gregorian.d std\exception.d
std\__fileinit.d std\gregorian.d std\exception.d std\encodingbase.d
SRC_STD_NET= std\net\isemail.d