changeset 114:e28b18c23469

added a module dmd.common for commonly used stuff it currently holds code for consistency checking of predefined versions also added a VisualD project file
author Trass3r
date Wed, 01 Sep 2010 18:21:58 +0200
parents 3482c73a991b
children 6caaf0256da1 cccb872a6bc6
files ddmd.sln ddmd.visualdproj dmd/AddAssignExp.d dmd/AddExp.d dmd/AddrExp.d dmd/AggregateDeclaration.d dmd/AliasDeclaration.d dmd/AliasThis.d dmd/AlignDeclaration.d dmd/AndAndExp.d dmd/AndAssignExp.d dmd/AndExp.d dmd/AnonDeclaration.d dmd/AnonymousAggregateDeclaration.d dmd/Argument.d dmd/Array.d dmd/ArrayExp.d dmd/ArrayInitializer.d dmd/ArrayLengthExp.d dmd/ArrayLiteralExp.d dmd/ArrayScopeSymbol.d dmd/ArrayTypes.d dmd/AsmStatement.d dmd/AssertExp.d dmd/AssignExp.d dmd/AssocArrayLiteralExp.d dmd/AttribDeclaration.d dmd/BaseClass.d dmd/BinExp.d dmd/BoolExp.d dmd/BreakStatement.d dmd/CallExp.d dmd/CaseRangeStatement.d dmd/CaseStatement.d dmd/Cast.d dmd/CastExp.d dmd/CatAssignExp.d dmd/CatExp.d dmd/Catch.d dmd/ClassDeclaration.d dmd/ClassInfoDeclaration.d dmd/CmpExp.d dmd/ComExp.d dmd/CommaExp.d dmd/CompileDeclaration.d dmd/CompileExp.d dmd/CompileStatement.d dmd/ComplexExp.d dmd/CompoundDeclarationStatement.d dmd/CompoundStatement.d dmd/CondExp.d dmd/Condition.d dmd/ConditionalDeclaration.d dmd/ConditionalStatement.d dmd/ContinueStatement.d dmd/CppMangleState.d dmd/CtorDeclaration.d dmd/DVCondition.d dmd/Dchar.d dmd/DebugCondition.d dmd/DebugSymbol.d dmd/Declaration.d dmd/DeclarationExp.d dmd/DeclarationStatement.d dmd/DefaultInitExp.d dmd/DefaultStatement.d dmd/DelegateExp.d dmd/DeleteDeclaration.d dmd/DeleteExp.d dmd/DivAssignExp.d dmd/DivExp.d dmd/DoStatement.d dmd/DocComment.d dmd/DollarExp.d dmd/DotExp.d dmd/DotIdExp.d dmd/DotTemplateExp.d dmd/DotTemplateInstanceExp.d dmd/DotTypeExp.d dmd/DotVarExp.d dmd/Dsymbol.d dmd/DsymbolExp.d dmd/DsymbolTable.d dmd/DtorDeclaration.d dmd/EnumDeclaration.d dmd/EnumMember.d dmd/EqualExp.d dmd/ErrorExp.d dmd/ExpInitializer.d dmd/ExpStatement.d dmd/Expression.d dmd/File.d dmd/FileExp.d dmd/FileInitExp.d dmd/FileName.d dmd/ForStatement.d dmd/ForeachRangeStatement.d dmd/ForeachStatement.d dmd/FuncAliasDeclaration.d dmd/FuncDeclaration.d dmd/FuncExp.d dmd/FuncLiteralDeclaration.d dmd/Global.d dmd/GlobalExpressions.d dmd/GotoCaseStatement.d dmd/GotoDefaultStatement.d dmd/GotoStatement.d dmd/HaltExp.d dmd/IRState.d dmd/Id.d dmd/Identifier.d dmd/IdentifierExp.d dmd/IdentityExp.d dmd/IfStatement.d dmd/Import.d dmd/InExp.d dmd/IndexExp.d dmd/Initializer.d dmd/InlineCostState.d dmd/InlineDoState.d dmd/InlineScanState.d dmd/IntegerExp.d dmd/InterState.d dmd/InterfaceDeclaration.d dmd/InvariantDeclaration.d dmd/IsExp.d dmd/Json.d dmd/Keyword.d dmd/LabelDsymbol.d dmd/LabelStatement.d dmd/Lexer.d dmd/Library.d dmd/LineInitExp.d dmd/LinkDeclaration.d dmd/Loc.d dmd/Lstring.d dmd/Macro.d dmd/MinAssignExp.d dmd/MinExp.d dmd/ModAssignExp.d dmd/ModExp.d dmd/Module.d dmd/ModuleDeclaration.d dmd/ModuleInfoDeclaration.d dmd/MulAssignExp.d dmd/MulExp.d dmd/NegExp.d dmd/NewAnonClassExp.d dmd/NewDeclaration.d dmd/NewExp.d dmd/NotExp.d dmd/NullExp.d dmd/OnScopeStatement.d dmd/Optimize.d dmd/OrAssignExp.d dmd/OrExp.d dmd/OrOrExp.d dmd/OutBuffer.d dmd/OverExp.d dmd/OverloadSet.d dmd/PREC.d dmd/Package.d dmd/Param.d dmd/Parser.d dmd/PeelStatement.d dmd/Port.d dmd/PostBlitDeclaration.d dmd/PostExp.d dmd/PragmaDeclaration.d dmd/PragmaStatement.d dmd/ProtDeclaration.d dmd/PtrExp.d dmd/RealExp.d dmd/RemoveExp.d dmd/ReturnStatement.d dmd/Scope.d dmd/ScopeDsymbol.d dmd/ScopeExp.d dmd/ScopeStatement.d dmd/Section.d dmd/ShlAssignExp.d dmd/ShlExp.d dmd/ShrAssignExp.d dmd/ShrExp.d dmd/SliceExp.d dmd/Statement.d dmd/StaticAssert.d dmd/StaticAssertStatement.d dmd/StaticCtorDeclaration.d dmd/StaticDtorDeclaration.d dmd/StaticIfCondition.d dmd/StaticIfDeclaration.d dmd/StorageClassDeclaration.d dmd/String.d dmd/StringEntry.d dmd/StringExp.d dmd/StringTable.d dmd/StringValue.d dmd/StructDeclaration.d dmd/StructInitializer.d dmd/StructLiteralExp.d dmd/SuperExp.d dmd/SwitchErrorStatement.d dmd/SwitchStatement.d dmd/SymOffExp.d dmd/SymbolDeclaration.d dmd/SymbolExp.d dmd/SynchronizedStatement.d dmd/TemplateAliasParameter.d dmd/TemplateDeclaration.d dmd/TemplateExp.d dmd/TemplateInstance.d dmd/TemplateMixin.d dmd/TemplateParameter.d dmd/TemplateThisParameter.d dmd/TemplateTupleParameter.d dmd/TemplateTypeParameter.d dmd/TemplateValueParameter.d dmd/ThisDeclaration.d dmd/ThisExp.d dmd/ThrowStatement.d dmd/Token.d dmd/TraitsExp.d dmd/TryCatchStatement.d dmd/TryFinallyStatement.d dmd/Tuple.d dmd/TupleDeclaration.d dmd/TupleExp.d dmd/Type.d dmd/TypeAArray.d dmd/TypeArray.d dmd/TypeBasic.d dmd/TypeClass.d dmd/TypeDArray.d dmd/TypeDelegate.d dmd/TypeEnum.d dmd/TypeExp.d dmd/TypeFunction.d dmd/TypeIdentifier.d dmd/TypeInfoArrayDeclaration.d dmd/TypeInfoAssociativeArrayDeclaration.d dmd/TypeInfoClassDeclaration.d dmd/TypeInfoConstDeclaration.d dmd/TypeInfoDeclaration.d dmd/TypeInfoDelegateDeclaration.d dmd/TypeInfoEnumDeclaration.d dmd/TypeInfoFunctionDeclaration.d dmd/TypeInfoInterfaceDeclaration.d dmd/TypeInfoInvariantDeclaration.d dmd/TypeInfoPointerDeclaration.d dmd/TypeInfoSharedDeclaration.d dmd/TypeInfoStaticArrayDeclaration.d dmd/TypeInfoStructDeclaration.d dmd/TypeInfoTupleDeclaration.d dmd/TypeInfoTypedefDeclaration.d dmd/TypeInstance.d dmd/TypeNewArray.d dmd/TypeNext.d dmd/TypePointer.d dmd/TypeQualified.d dmd/TypeReference.d dmd/TypeReturn.d dmd/TypeSArray.d dmd/TypeSlice.d dmd/TypeStruct.d dmd/TypeTuple.d dmd/TypeTypedef.d dmd/TypeTypeof.d dmd/TypedefDeclaration.d dmd/TypeidExp.d dmd/UAddExp.d dmd/UnaExp.d dmd/UnionDeclaration.d dmd/UnitTestDeclaration.d dmd/UnrolledLoopStatement.d dmd/UshrAssignExp.d dmd/UshrExp.d dmd/Utf.d dmd/Util.d dmd/VarDeclaration.d dmd/VarExp.d dmd/VersionCondition.d dmd/VersionSymbol.d dmd/VoidInitializer.d dmd/VolatileStatement.d dmd/WhileStatement.d dmd/WithScopeSymbol.d dmd/WithStatement.d dmd/XorAssignExp.d dmd/XorExp.d dmd/backend/Blockx.d dmd/backend/Classsym.d dmd/backend/Config.d dmd/backend/Configv.d dmd/backend/Cstate.d dmd/backend/DT.d dmd/backend/LIST.d dmd/backend/RTLSYM.d dmd/backend/StringTab.d dmd/backend/Symbol.d dmd/backend/TYFL.d dmd/backend/TYPE.d dmd/backend/Util.d dmd/backend/block.d dmd/backend/code.d dmd/backend/con_t.d dmd/backend/cse_t.d dmd/backend/dt_t.d dmd/backend/elem.d dmd/backend/enum_t.d dmd/backend/func_t.d dmd/backend/glue.d dmd/backend/iasm.d dmd/backend/immed_t.d dmd/backend/rel.d dmd/backend/struct_t.d dmd/backend/symtab_t.d dmd/codegen/Util.d dmd/common.d dmd/condition/util/findCondition.d dmd/declaration/Match.d dmd/expression/Add.d dmd/expression/And.d dmd/expression/ArrayLength.d dmd/expression/Cat.d dmd/expression/Cmp.d dmd/expression/Com.d dmd/expression/Div.d dmd/expression/Equal.d dmd/expression/Identity.d dmd/expression/Index.d dmd/expression/Min.d dmd/expression/Mod.d dmd/expression/Mul.d dmd/expression/Neg.d dmd/expression/Not.d dmd/expression/Or.d dmd/expression/Ptr.d dmd/expression/Shl.d dmd/expression/Shr.d dmd/expression/Slice.d dmd/expression/Ushr.d dmd/expression/Util.d dmd/expression/Xor.d dmd/expression/shift_optimize.d dmd/expression/util/arrayTypeCompatible.d dmd/interpret/Util.d dmd/templates/Util.d dmd/type/Util.d main.d
diffstat 350 files changed, 1260 insertions(+), 177 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ddmd.sln	Wed Sep 01 18:21:58 2010 +0200
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{002A2DE9-8BB6-484D-9802-7E4AD4084715}") = "ddmd", "ddmd.visualdproj", "{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}.Debug|Win32.Build.0 = Debug|Win32
+		{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}.Release|Win32.ActiveCfg = Release|Win32
+		{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ddmd.visualdproj	Wed Sep 01 18:21:58 2010 +0200
@@ -0,0 +1,614 @@
+<DProject>
+ <ProjectGuid>{C58DB54F-7447-4ADC-80C0-7DD2392E5F28}</ProjectGuid>
+ <Config name="Debug">
+  <obj>0</obj>
+  <link>0</link>
+  <lib>0</lib>
+  <multiobj>0</multiobj>
+  <oneobj>0</oneobj>
+  <trace>0</trace>
+  <quiet>0</quiet>
+  <verbose>0</verbose>
+  <vtls>0</vtls>
+  <symdebug>1</symdebug>
+  <optimize>0</optimize>
+  <cpu>0</cpu>
+  <isX86_64>0</isX86_64>
+  <isLinux>0</isLinux>
+  <isOSX>0</isOSX>
+  <isWindows>0</isWindows>
+  <isFreeBSD>0</isFreeBSD>
+  <isSolaris>0</isSolaris>
+  <scheduler>0</scheduler>
+  <useDeprecated>0</useDeprecated>
+  <useAssert>0</useAssert>
+  <useInvariants>0</useInvariants>
+  <useIn>0</useIn>
+  <useOut>0</useOut>
+  <useArrayBounds>0</useArrayBounds>
+  <noboundscheck>0</noboundscheck>
+  <useSwitchError>0</useSwitchError>
+  <useUnitTests>1</useUnitTests>
+  <useInline>0</useInline>
+  <release>0</release>
+  <preservePaths>1</preservePaths>
+  <warnings>0</warnings>
+  <infowarnings>0</infowarnings>
+  <pic>0</pic>
+  <cov>0</cov>
+  <nofloat>0</nofloat>
+  <Dversion>2</Dversion>
+  <ignoreUnsupportedPragmas>0</ignoreUnsupportedPragmas>
+  <otherDMD>0</otherDMD>
+  <program>$(DMDInstallDir)windows\bin\dmd.exe</program>
+  <imppath />
+  <fileImppath />
+  <outdir>$(ConfigurationName)</outdir>
+  <objdir>$(OutDir)</objdir>
+  <objname />
+  <libname />
+  <doDocComments>0</doDocComments>
+  <docdir />
+  <docname />
+  <ddocfiles />
+  <doHdrGeneration>0</doHdrGeneration>
+  <hdrdir />
+  <hdrname />
+  <doXGeneration>1</doXGeneration>
+  <xfilename>$(IntDir)\$(ProjectName).json</xfilename>
+  <debuglevel>0</debuglevel>
+  <debugids />
+  <versionlevel>0</versionlevel>
+  <versionids>DMDV2 TX86 MARS _WIN32 TARGET_WINDOS OMFOBJ WindowsXP DumbClone BREAKABI SEH STRUCTTHISREF SNAN_DEFAULT_INIT SARRAYVALUE</versionids>
+  <dump_source>0</dump_source>
+  <mapverbosity>0</mapverbosity>
+  <createImplib>0</createImplib>
+  <defaultlibname />
+  <debuglibname />
+  <moduleDepsFile />
+  <run>0</run>
+  <runargs />
+  <runCv2pdb>1</runCv2pdb>
+  <pathCv2pdb>cv2pdb</pathCv2pdb>
+  <objfiles />
+  <linkswitches />
+  <libfiles>dmd.lib</libfiles>
+  <libpaths />
+  <deffile />
+  <resfile />
+  <exefile>$(OutDir)\$(ProjectName).exe</exefile>
+  <additionalOptions />
+  <preBuildCommand>dmc -c bridge\bridge.cpp</preBuildCommand>
+  <postBuildCommand />
+  <debugtarget>$(TARGETPATH)</debugtarget>
+  <debugarguments />
+  <debugworkingdir />
+  <debugattach>0</debugattach>
+  <debugremote />
+  <filesToClean>*.obj</filesToClean>
+ </Config>
+ <Config name="Release">
+  <obj>0</obj>
+  <link>0</link>
+  <lib>0</lib>
+  <multiobj>0</multiobj>
+  <oneobj>0</oneobj>
+  <trace>0</trace>
+  <quiet>0</quiet>
+  <verbose>0</verbose>
+  <vtls>0</vtls>
+  <symdebug>0</symdebug>
+  <optimize>0</optimize>
+  <cpu>0</cpu>
+  <isX86_64>0</isX86_64>
+  <isLinux>0</isLinux>
+  <isOSX>0</isOSX>
+  <isWindows>0</isWindows>
+  <isFreeBSD>0</isFreeBSD>
+  <isSolaris>0</isSolaris>
+  <scheduler>0</scheduler>
+  <useDeprecated>0</useDeprecated>
+  <useAssert>0</useAssert>
+  <useInvariants>0</useInvariants>
+  <useIn>0</useIn>
+  <useOut>0</useOut>
+  <useArrayBounds>0</useArrayBounds>
+  <noboundscheck>0</noboundscheck>
+  <useSwitchError>0</useSwitchError>
+  <useUnitTests>0</useUnitTests>
+  <useInline>1</useInline>
+  <release>1</release>
+  <preservePaths>1</preservePaths>
+  <warnings>0</warnings>
+  <infowarnings>0</infowarnings>
+  <pic>0</pic>
+  <cov>0</cov>
+  <nofloat>0</nofloat>
+  <Dversion>2</Dversion>
+  <ignoreUnsupportedPragmas>0</ignoreUnsupportedPragmas>
+  <otherDMD>0</otherDMD>
+  <program>$(DMDInstallDir)windows\bin\dmd.exe</program>
+  <imppath />
+  <fileImppath />
+  <outdir>$(ConfigurationName)</outdir>
+  <objdir>$(OutDir)</objdir>
+  <objname />
+  <libname />
+  <doDocComments>0</doDocComments>
+  <docdir />
+  <docname />
+  <ddocfiles />
+  <doHdrGeneration>0</doHdrGeneration>
+  <hdrdir />
+  <hdrname />
+  <doXGeneration>1</doXGeneration>
+  <xfilename>$(IntDir)\$(ProjectName).json</xfilename>
+  <debuglevel>0</debuglevel>
+  <debugids />
+  <versionlevel>0</versionlevel>
+  <versionids>DMDV2 TX86 MARS _WIN32 TARGET_WINDOS OMFOBJ WindowsXP DumbClone BREAKABI SEH STRUCTTHISREF SNAN_DEFAULT_INIT SARRAYVALUE</versionids>
+  <dump_source>0</dump_source>
+  <mapverbosity>0</mapverbosity>
+  <createImplib>0</createImplib>
+  <defaultlibname />
+  <debuglibname />
+  <moduleDepsFile />
+  <run>0</run>
+  <runargs />
+  <runCv2pdb>0</runCv2pdb>
+  <pathCv2pdb>$(VisualDInstallDir)cv2pdb\cv2pdb.exe</pathCv2pdb>
+  <objfiles />
+  <linkswitches />
+  <libfiles>dmdrelease.lib</libfiles>
+  <libpaths />
+  <deffile />
+  <resfile />
+  <exefile>$(OutDir)\$(ProjectName).exe</exefile>
+  <additionalOptions />
+  <preBuildCommand />
+  <postBuildCommand />
+  <debugtarget>$(TARGETPATH)</debugtarget>
+  <debugarguments />
+  <debugworkingdir />
+  <debugattach>0</debugattach>
+  <debugremote />
+  <filesToClean>*.obj</filesToClean>
+ </Config>
+ <Folder name="ddmd">
+  <Folder name="rt">
+   <File path="rt\memory.d" />
+  </Folder>
+  <Folder name="dbg">
+   <Folder name="image">
+    <File path="dbg\image\PE.d" />
+   </Folder>
+   <Folder name="symbol">
+    <File path="dbg\symbol\CodeView.d" />
+   </Folder>
+   <File path="dbg\CallStackInfo.d" />
+   <File path="dbg\Debug.d" />
+  </Folder>
+  <Folder name="dmd">
+   <Folder name="backend">
+    <File path="dmd\backend\BC.d" />
+    <File path="dmd\backend\block.d" />
+    <File path="dmd\backend\Blockx.d" />
+    <File path="dmd\backend\Classsym.d" />
+    <File path="dmd\backend\code.d" />
+    <File path="dmd\backend\Config.d" />
+    <File path="dmd\backend\Configv.d" />
+    <File path="dmd\backend\con_t.d" />
+    <File path="dmd\backend\cse_t.d" />
+    <File path="dmd\backend\Cstate.d" />
+    <File path="dmd\backend\DT.d" />
+    <File path="dmd\backend\dt_t.d" />
+    <File path="dmd\backend\elem.d" />
+    <File path="dmd\backend\enum_t.d" />
+    <File path="dmd\backend\F.d" />
+    <File path="dmd\backend\FL.d" />
+    <File path="dmd\backend\Funcsym.d" />
+    <File path="dmd\backend\func_t.d" />
+    <File path="dmd\backend\glue.d" />
+    <File path="dmd\backend\iasm.d" />
+    <File path="dmd\backend\immed_t.d" />
+    <File path="dmd\backend\LANG.d" />
+    <File path="dmd\backend\LINKAGE.d" />
+    <File path="dmd\backend\LIST.d" />
+    <File path="dmd\backend\mTY.d" />
+    <File path="dmd\backend\mTYman.d" />
+    <File path="dmd\backend\OPER.d" />
+    <File path="dmd\backend\PARAM.d" />
+    <File path="dmd\backend\REG.d" />
+    <File path="dmd\backend\REGMAX.d" />
+    <File path="dmd\backend\regm_t.d" />
+    <File path="dmd\backend\rel.d" />
+    <File path="dmd\backend\RTLSYM.d" />
+    <File path="dmd\backend\SC.d" />
+    <File path="dmd\backend\SEN.d" />
+    <File path="dmd\backend\SFL.d" />
+    <File path="dmd\backend\Srcpos.d" />
+    <File path="dmd\backend\STR.d" />
+    <File path="dmd\backend\StringTab.d" />
+    <File path="dmd\backend\struct_t.d" />
+    <File path="dmd\backend\Symbol.d" />
+    <File path="dmd\backend\SYMIDX.d" />
+    <File path="dmd\backend\symtab_t.d" />
+    <File path="dmd\backend\targ_types.d" />
+    <File path="dmd\backend\template_t.d" />
+    <File path="dmd\backend\TF.d" />
+    <File path="dmd\backend\Thunk.d" />
+    <File path="dmd\backend\token_t.d" />
+    <File path="dmd\backend\TYFL.d" />
+    <File path="dmd\backend\TYM.d" />
+    <File path="dmd\backend\TYPE.d" />
+    <File path="dmd\backend\Util.d" />
+    <File path="dmd\backend\vec_t.d" />
+   </Folder>
+   <Folder name="codegen">
+    <File path="dmd\codegen\Util.d" />
+   </Folder>
+   <Folder name="condition">
+    <Folder name="util">
+     <File path="dmd\condition\util\findCondition.d" />
+    </Folder>
+   </Folder>
+   <Folder name="declaration">
+    <File path="dmd\declaration\Match.d" />
+   </Folder>
+   <Folder name="expression">
+    <Folder name="util">
+     <File path="dmd\expression\util\arrayTypeCompatible.d" />
+    </Folder>
+    <File path="dmd\expression\Add.d" />
+    <File path="dmd\expression\And.d" />
+    <File path="dmd\expression\ArrayLength.d" />
+    <File path="dmd\expression\Cat.d" />
+    <File path="dmd\expression\Cmp.d" />
+    <File path="dmd\expression\Com.d" />
+    <File path="dmd\expression\Div.d" />
+    <File path="dmd\expression\Equal.d" />
+    <File path="dmd\expression\Identity.d" />
+    <File path="dmd\expression\Index.d" />
+    <File path="dmd\expression\Min.d" />
+    <File path="dmd\expression\Mod.d" />
+    <File path="dmd\expression\Mul.d" />
+    <File path="dmd\expression\Neg.d" />
+    <File path="dmd\expression\Not.d" />
+    <File path="dmd\expression\Or.d" />
+    <File path="dmd\expression\Ptr.d" />
+    <File path="dmd\expression\shift_optimize.d" />
+    <File path="dmd\expression\Shl.d" />
+    <File path="dmd\expression\Shr.d" />
+    <File path="dmd\expression\Slice.d" />
+    <File path="dmd\expression\Ushr.d" />
+    <File path="dmd\expression\Util.d" />
+    <File path="dmd\expression\Xor.d" />
+   </Folder>
+   <Folder name="interpret">
+    <File path="dmd\interpret\Util.d" />
+   </Folder>
+   <Folder name="templates">
+    <File path="dmd\templates\Util.d" />
+   </Folder>
+   <Folder name="type">
+    <File path="dmd\type\Util.d" />
+   </Folder>
+   <File path="dmd\AddAssignExp.d" />
+   <File path="dmd\AddExp.d" />
+   <File path="dmd\AddrExp.d" />
+   <File path="dmd\AggregateDeclaration.d" />
+   <File path="dmd\AliasDeclaration.d" />
+   <File path="dmd\AliasThis.d" />
+   <File path="dmd\AlignDeclaration.d" />
+   <File path="dmd\AndAndExp.d" />
+   <File path="dmd\AndAssignExp.d" />
+   <File path="dmd\AndExp.d" />
+   <File path="dmd\AnonDeclaration.d" />
+   <File path="dmd\AnonymousAggregateDeclaration.d" />
+   <File path="dmd\Argument.d" />
+   <File path="dmd\Array.d" />
+   <File path="dmd\ArrayExp.d" />
+   <File path="dmd\ArrayInitializer.d" />
+   <File path="dmd\ArrayLengthExp.d" />
+   <File path="dmd\ArrayLiteralExp.d" />
+   <File path="dmd\ArrayScopeSymbol.d" />
+   <File path="dmd\ArrayTypes.d" />
+   <File path="dmd\AsmStatement.d" />
+   <File path="dmd\AssertExp.d" />
+   <File path="dmd\AssignExp.d" />
+   <File path="dmd\AssocArrayLiteralExp.d" />
+   <File path="dmd\AttribDeclaration.d" />
+   <File path="dmd\BaseClass.d" />
+   <File path="dmd\BE.d" />
+   <File path="dmd\BinExp.d" />
+   <File path="dmd\BoolExp.d" />
+   <File path="dmd\BreakStatement.d" />
+   <File path="dmd\BUILTIN.d" />
+   <File path="dmd\CallExp.d" />
+   <File path="dmd\CaseRangeStatement.d" />
+   <File path="dmd\CaseStatement.d" />
+   <File path="dmd\Cast.d" />
+   <File path="dmd\CastExp.d" />
+   <File path="dmd\CatAssignExp.d" />
+   <File path="dmd\Catch.d" />
+   <File path="dmd\CatExp.d" />
+   <File path="dmd\ClassDeclaration.d" />
+   <File path="dmd\ClassInfoDeclaration.d" />
+   <File path="dmd\CmpExp.d" />
+   <File path="dmd\ComExp.d" />
+   <File path="dmd\CommaExp.d" />
+   <File path="dmd\CompileDeclaration.d" />
+   <File path="dmd\CompileExp.d" />
+   <File path="dmd\CompileStatement.d" />
+   <File path="dmd\Complex.d" />
+   <File path="dmd\ComplexExp.d" />
+   <File path="dmd\CompoundDeclarationStatement.d" />
+   <File path="dmd\CompoundStatement.d" />
+   <File path="dmd\CondExp.d" />
+   <File path="dmd\Condition.d" />
+   <File path="dmd\ConditionalDeclaration.d" />
+   <File path="dmd\ConditionalStatement.d" />
+   <File path="dmd\ContinueStatement.d" />
+   <File path="dmd\CppMangleState.d" />
+   <File path="dmd\CSX.d" />
+   <File path="dmd\CtorDeclaration.d" />
+   <File path="dmd\Dchar.d" />
+   <File path="dmd\DebugCondition.d" />
+   <File path="dmd\DebugSymbol.d" />
+   <File path="dmd\Declaration.d" />
+   <File path="dmd\DeclarationExp.d" />
+   <File path="dmd\DeclarationStatement.d" />
+   <File path="dmd\DefaultInitExp.d" />
+   <File path="dmd\DefaultStatement.d" />
+   <File path="dmd\DelegateExp.d" />
+   <File path="dmd\DeleteDeclaration.d" />
+   <File path="dmd\DeleteExp.d" />
+   <File path="dmd\DivAssignExp.d" />
+   <File path="dmd\DivExp.d" />
+   <File path="dmd\DocComment.d" />
+   <File path="dmd\DollarExp.d" />
+   <File path="dmd\DoStatement.d" />
+   <File path="dmd\DotExp.d" />
+   <File path="dmd\DotIdExp.d" />
+   <File path="dmd\DotTemplateExp.d" />
+   <File path="dmd\DotTemplateInstanceExp.d" />
+   <File path="dmd\DotTypeExp.d" />
+   <File path="dmd\DotVarExp.d" />
+   <File path="dmd\Dsymbol.d" />
+   <File path="dmd\DsymbolExp.d" />
+   <File path="dmd\DsymbolTable.d" />
+   <File path="dmd\DtorDeclaration.d" />
+   <File path="dmd\DVCondition.d" />
+   <File path="dmd\DYNCAST.d" />
+   <File path="dmd\EnumDeclaration.d" />
+   <File path="dmd\EnumMember.d" />
+   <File path="dmd\EnumUtils.d" />
+   <File path="dmd\EqualExp.d" />
+   <File path="dmd\ErrorExp.d" />
+   <File path="dmd\Escape.d" />
+   <File path="dmd\ExpInitializer.d" />
+   <File path="dmd\Expression.d" />
+   <File path="dmd\ExpStatement.d" />
+   <File path="dmd\File.d" />
+   <File path="dmd\FileExp.d" />
+   <File path="dmd\FileInitExp.d" />
+   <File path="dmd\FileName.d" />
+   <File path="dmd\ForeachRangeStatement.d" />
+   <File path="dmd\ForeachStatement.d" />
+   <File path="dmd\ForStatement.d" />
+   <File path="dmd\FuncAliasDeclaration.d" />
+   <File path="dmd\FuncDeclaration.d" />
+   <File path="dmd\FuncExp.d" />
+   <File path="dmd\FuncLiteralDeclaration.d" />
+   <File path="dmd\Global.d" />
+   <File path="dmd\GlobalExpressions.d" />
+   <File path="dmd\Gnuc.d" />
+   <File path="dmd\GotoCaseStatement.d" />
+   <File path="dmd\GotoDefaultStatement.d" />
+   <File path="dmd\GotoStatement.d" />
+   <File path="dmd\HaltExp.d" />
+   <File path="dmd\HdrGenState.d" />
+   <File path="dmd\Id.d" />
+   <File path="dmd\Identifier.d" />
+   <File path="dmd\IdentifierExp.d" />
+   <File path="dmd\IdentityExp.d" />
+   <File path="dmd\IfStatement.d" />
+   <File path="dmd\ILS.d" />
+   <File path="dmd\Import.d" />
+   <File path="dmd\IndexExp.d" />
+   <File path="dmd\InExp.d" />
+   <File path="dmd\Initializer.d" />
+   <File path="dmd\InlineCostState.d" />
+   <File path="dmd\InlineDoState.d" />
+   <File path="dmd\InlineScanState.d" />
+   <File path="dmd\IntegerExp.d" />
+   <File path="dmd\InterfaceDeclaration.d" />
+   <File path="dmd\InterState.d" />
+   <File path="dmd\IntRange.d" />
+   <File path="dmd\InvariantDeclaration.d" />
+   <File path="dmd\IRState.d" />
+   <File path="dmd\IsExp.d" />
+   <File path="dmd\Json.d" />
+   <File path="dmd\Keyword.d" />
+   <File path="dmd\LabelDsymbol.d" />
+   <File path="dmd\LabelStatement.d" />
+   <File path="dmd\Lexer.d" />
+   <File path="dmd\Library.d" />
+   <File path="dmd\LineInitExp.d" />
+   <File path="dmd\LINK.d" />
+   <File path="dmd\LinkDeclaration.d" />
+   <File path="dmd\Loc.d" />
+   <File path="dmd\Lstring.d" />
+   <File path="dmd\Macro.d" />
+   <File path="dmd\MATCH.d" />
+   <File path="dmd\MinAssignExp.d" />
+   <File path="dmd\MinExp.d" />
+   <File path="dmd\MOD.d" />
+   <File path="dmd\ModAssignExp.d" />
+   <File path="dmd\ModExp.d" />
+   <File path="dmd\Module.d" />
+   <File path="dmd\ModuleDeclaration.d" />
+   <File path="dmd\ModuleInfoDeclaration.d" />
+   <File path="dmd\MulAssignExp.d" />
+   <File path="dmd\MulExp.d" />
+   <File path="dmd\NegExp.d" />
+   <File path="dmd\NewAnonClassExp.d" />
+   <File path="dmd\NewDeclaration.d" />
+   <File path="dmd\NewExp.d" />
+   <File path="dmd\NotExp.d" />
+   <File path="dmd\NullExp.d" />
+   <File path="dmd\ObjModule.d" />
+   <File path="dmd\OnScopeStatement.d" />
+   <File path="dmd\Optimize.d" />
+   <File path="dmd\OrAssignExp.d" />
+   <File path="dmd\OrExp.d" />
+   <File path="dmd\OrOrExp.d" />
+   <File path="dmd\OutBuffer.d" />
+   <File path="dmd\OverExp.d" />
+   <File path="dmd\OverloadSet.d" />
+   <File path="dmd\Package.d" />
+   <File path="dmd\Param.d" />
+   <File path="dmd\Parser.d" />
+   <File path="dmd\ParseStatementFlags.d" />
+   <File path="dmd\PASS.d" />
+   <File path="dmd\PeelStatement.d" />
+   <File path="dmd\Port.d" />
+   <File path="dmd\PostBlitDeclaration.d" />
+   <File path="dmd\PostExp.d" />
+   <File path="dmd\PragmaDeclaration.d" />
+   <File path="dmd\PragmaStatement.d" />
+   <File path="dmd\PREC.d" />
+   <File path="dmd\PROT.d" />
+   <File path="dmd\ProtDeclaration.d" />
+   <File path="dmd\PtrExp.d" />
+   <File path="dmd\RealExp.d" />
+   <File path="dmd\RemoveExp.d" />
+   <File path="dmd\RET.d" />
+   <File path="dmd\ReturnStatement.d" />
+   <File path="dmd\Scope.d" />
+   <File path="dmd\ScopeDsymbol.d" />
+   <File path="dmd\ScopeExp.d" />
+   <File path="dmd\ScopeStatement.d" />
+   <File path="dmd\Section.d" />
+   <File path="dmd\ShlAssignExp.d" />
+   <File path="dmd\ShlExp.d" />
+   <File path="dmd\ShrAssignExp.d" />
+   <File path="dmd\ShrExp.d" />
+   <File path="dmd\SliceExp.d" />
+   <File path="dmd\Statement.d" />
+   <File path="dmd\StaticAssert.d" />
+   <File path="dmd\StaticAssertStatement.d" />
+   <File path="dmd\StaticCtorDeclaration.d" />
+   <File path="dmd\StaticDtorDeclaration.d" />
+   <File path="dmd\StaticIfCondition.d" />
+   <File path="dmd\StaticIfDeclaration.d" />
+   <File path="dmd\STC.d" />
+   <File path="dmd\StorageClassDeclaration.d" />
+   <File path="dmd\String.d" />
+   <File path="dmd\StringEntry.d" />
+   <File path="dmd\StringExp.d" />
+   <File path="dmd\StringTable.d" />
+   <File path="dmd\StringValue.d" />
+   <File path="dmd\StructDeclaration.d" />
+   <File path="dmd\StructInitializer.d" />
+   <File path="dmd\StructLiteralExp.d" />
+   <File path="dmd\SuperExp.d" />
+   <File path="dmd\SwitchErrorStatement.d" />
+   <File path="dmd\SwitchStatement.d" />
+   <File path="dmd\SymbolDeclaration.d" />
+   <File path="dmd\SymbolExp.d" />
+   <File path="dmd\SymOffExp.d" />
+   <File path="dmd\SynchronizedStatement.d" />
+   <File path="dmd\TemplateAliasParameter.d" />
+   <File path="dmd\TemplateDeclaration.d" />
+   <File path="dmd\TemplateExp.d" />
+   <File path="dmd\TemplateInstance.d" />
+   <File path="dmd\TemplateMixin.d" />
+   <File path="dmd\TemplateParameter.d" />
+   <File path="dmd\TemplateThisParameter.d" />
+   <File path="dmd\TemplateTupleParameter.d" />
+   <File path="dmd\TemplateTypeParameter.d" />
+   <File path="dmd\TemplateValueParameter.d" />
+   <File path="dmd\TFLAGS.d" />
+   <File path="dmd\ThisDeclaration.d" />
+   <File path="dmd\ThisExp.d" />
+   <File path="dmd\ThrowStatement.d" />
+   <File path="dmd\TOK.d" />
+   <File path="dmd\Token.d" />
+   <File path="dmd\TraitsExp.d" />
+   <File path="dmd\TryCatchStatement.d" />
+   <File path="dmd\TryFinallyStatement.d" />
+   <File path="dmd\Tuple.d" />
+   <File path="dmd\TupleDeclaration.d" />
+   <File path="dmd\TupleExp.d" />
+   <File path="dmd\TY.d" />
+   <File path="dmd\Type.d" />
+   <File path="dmd\TypeAArray.d" />
+   <File path="dmd\TypeArray.d" />
+   <File path="dmd\TypeBasic.d" />
+   <File path="dmd\TypeClass.d" />
+   <File path="dmd\TypeDArray.d" />
+   <File path="dmd\TypedefDeclaration.d" />
+   <File path="dmd\TypeDelegate.d" />
+   <File path="dmd\TypeEnum.d" />
+   <File path="dmd\TypeExp.d" />
+   <File path="dmd\TypeFunction.d" />
+   <File path="dmd\TypeIdentifier.d" />
+   <File path="dmd\TypeidExp.d" />
+   <File path="dmd\TypeInfoArrayDeclaration.d" />
+   <File path="dmd\TypeInfoAssociativeArrayDeclaration.d" />
+   <File path="dmd\TypeInfoClassDeclaration.d" />
+   <File path="dmd\TypeInfoConstDeclaration.d" />
+   <File path="dmd\TypeInfoDeclaration.d" />
+   <File path="dmd\TypeInfoDelegateDeclaration.d" />
+   <File path="dmd\TypeInfoEnumDeclaration.d" />
+   <File path="dmd\TypeInfoFunctionDeclaration.d" />
+   <File path="dmd\TypeInfoInterfaceDeclaration.d" />
+   <File path="dmd\TypeInfoInvariantDeclaration.d" />
+   <File path="dmd\TypeInfoPointerDeclaration.d" />
+   <File path="dmd\TypeInfoSharedDeclaration.d" />
+   <File path="dmd\TypeInfoStaticArrayDeclaration.d" />
+   <File path="dmd\TypeInfoStructDeclaration.d" />
+   <File path="dmd\TypeInfoTupleDeclaration.d" />
+   <File path="dmd\TypeInfoTypedefDeclaration.d" />
+   <File path="dmd\TypeInstance.d" />
+   <File path="dmd\TypeNewArray.d" />
+   <File path="dmd\TypeNext.d" />
+   <File path="dmd\TypePointer.d" />
+   <File path="dmd\TypeQualified.d" />
+   <File path="dmd\TypeReference.d" />
+   <File path="dmd\TypeReturn.d" />
+   <File path="dmd\TypeSArray.d" />
+   <File path="dmd\TypeSlice.d" />
+   <File path="dmd\TypeStruct.d" />
+   <File path="dmd\TypeTuple.d" />
+   <File path="dmd\TypeTypedef.d" />
+   <File path="dmd\TypeTypeof.d" />
+   <File path="dmd\UAddExp.d" />
+   <File path="dmd\UnaExp.d" />
+   <File path="dmd\UnionDeclaration.d" />
+   <File path="dmd\UnitTestDeclaration.d" />
+   <File path="dmd\UnrolledLoopStatement.d" />
+   <File path="dmd\UshrAssignExp.d" />
+   <File path="dmd\UshrExp.d" />
+   <File path="dmd\Utf.d" />
+   <File path="dmd\Util.d" />
+   <File path="dmd\VarDeclaration.d" />
+   <File path="dmd\VarExp.d" />
+   <File path="dmd\VersionCondition.d" />
+   <File path="dmd\VersionSymbol.d" />
+   <File path="dmd\VoidInitializer.d" />
+   <File path="dmd\VolatileStatement.d" />
+   <File path="dmd\WANT.d" />
+   <File path="dmd\WhileStatement.d" />
+   <File path="dmd\WithScopeSymbol.d" />
+   <File path="dmd\WithStatement.d" />
+   <File path="dmd\XorAssignExp.d" />
+   <File path="dmd\XorExp.d" />
+   <File path="dmd\common.d" />
+  </Folder>
+  <File path="main.d" />
+  <File path="bridge.obj" />
+  <File path="ddmd.def" />
+ </Folder>
+</DProject>
--- a/dmd/AddAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AddAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AddAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/AddExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AddExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AddExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/AddrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AddrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AddrExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.UnaExp;
 import dmd.MATCH;
--- a/dmd/AggregateDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AggregateDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AggregateDeclaration;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.Type;
 import dmd.Id;
--- a/dmd/AliasDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AliasDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AliasDeclaration;
 
+import dmd.common;
 import dmd.LINK;
 import dmd.Declaration;
 import dmd.TypedefDeclaration;
--- a/dmd/AliasThis.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AliasThis.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AliasThis;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Identifier;
 import dmd.Loc;
--- a/dmd/AlignDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AlignDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AlignDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.OutBuffer;
 import dmd.HdrGenState;
--- a/dmd/AndAndExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AndAndExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AndAndExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.InterState;
 import dmd.Loc;
--- a/dmd/AndAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AndAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AndAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/AndExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AndExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AndExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/AnonDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AnonDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AnonDeclaration;
 
+import dmd.common;
 import dmd.OutBuffer;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/AnonymousAggregateDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AnonymousAggregateDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AnonymousAggregateDeclaration;
 
+import dmd.common;
 import dmd.AggregateDeclaration;
 import dmd.Loc;
 
--- a/dmd/Argument.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Argument.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Argument;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Identifier;
 import dmd.TypeArray;
--- a/dmd/Array.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Array.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Array;
 
+import dmd.common;
 import core.memory;
 
 import std.exception;
--- a/dmd/ArrayExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.UnaExp;
--- a/dmd/ArrayInitializer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayInitializer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayInitializer;
 
+import dmd.common;
 import dmd.ArrayTypes;
 import dmd.Type;
 import dmd.TypeAArray;
--- a/dmd/ArrayLengthExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayLengthExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayLengthExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/ArrayLiteralExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayLiteralExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayLiteralExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/ArrayScopeSymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayScopeSymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayScopeSymbol;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.Expression;
 import dmd.TypeTuple;
--- a/dmd/ArrayTypes.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ArrayTypes.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ArrayTypes;
 
+import dmd.common;
 import dmd.Array;
 
 alias Vector!Object Objects;
--- a/dmd/AsmStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AsmStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AsmStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Statement;
 import dmd.Token;
--- a/dmd/AssertExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AssertExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AssertExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/AssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AssignExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/AssocArrayLiteralExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AssocArrayLiteralExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AssocArrayLiteralExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.GlobalExpressions;
 import dmd.WANT;
--- a/dmd/AttribDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/AttribDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.AttribDeclaration;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Array;
 import dmd.Scope;
--- a/dmd/BaseClass.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/BaseClass.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.BaseClass;
 
+import dmd.common;
 import dmd.Type;
 import dmd.PROT;
 import dmd.ClassDeclaration;
--- a/dmd/BinExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/BinExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.BinExp;
 
+import dmd.common;
 import dmd.SliceExp;
 import dmd.IndexExp;
 import dmd.StructDeclaration;
--- a/dmd/BoolExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/BoolExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.BoolExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/BreakStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/BreakStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.BreakStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Loc;
 import dmd.Identifier;
--- a/dmd/CallExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CallExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CallExp;
 
+import dmd.common;
 import dmd.ErrorExp;
 import dmd.Expression;
 import dmd.Cast;
--- a/dmd/CaseRangeStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CaseRangeStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CaseRangeStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.ArrayTypes;
 import dmd.Expression;
--- a/dmd/CaseStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CaseStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CaseStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Statement;
--- a/dmd/Cast.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Cast.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Cast;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/CastExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CastExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CastExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.TY;
 import dmd.TypeStruct;
--- a/dmd/CatAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CatAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CatAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/CatExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CatExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CatExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/Catch.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Catch.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Catch;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Type;
 import dmd.Scope;
--- a/dmd/ClassDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ClassDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ClassDeclaration;
 
+import dmd.common;
 import dmd.AggregateDeclaration;
 import dmd.InterfaceDeclaration;
 import dmd.ThisDeclaration;
@@ -664,7 +665,7 @@
 
 		if (isCOMclass())
 		{
-version (_WIN32) {
+version (Windows) {
 		sc.linkage = LINK.LINKwindows;
 } else {
 		/* This enables us to use COM objects under Linux and
--- a/dmd/ClassInfoDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ClassInfoDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ClassInfoDeclaration;
 
+import dmd.common;
 import dmd.VarDeclaration;
 import dmd.ClassDeclaration;
 import dmd.Dsymbol;
--- a/dmd/CmpExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CmpExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CmpExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/ComExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ComExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ComExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/CommaExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CommaExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CommaExp;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.BinExp;
 import dmd.IRState;
--- a/dmd/CompileDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CompileDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CompileDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.WANT;
 import dmd.TOK;
--- a/dmd/CompileExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CompileExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CompileExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.UnaExp;
 import dmd.OutBuffer;
--- a/dmd/CompileStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CompileStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CompileStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/ComplexExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ComplexExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ComplexExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.InterState;
 import dmd.Type;
--- a/dmd/CompoundDeclarationStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CompoundDeclarationStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CompoundDeclarationStatement;
 
+import dmd.common;
 import dmd.CompoundStatement;
 import dmd.Loc;
 import dmd.ArrayTypes;
--- a/dmd/CompoundStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CompoundStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CompoundStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Statement;
 import dmd.Array;
--- a/dmd/CondExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CondExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CondExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.MATCH;
--- a/dmd/Condition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Condition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Condition;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Scope;
 import dmd.ScopeDsymbol;
--- a/dmd/ConditionalDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ConditionalDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ConditionalDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.Condition;
 import dmd.Array;
--- a/dmd/ConditionalStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ConditionalStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ConditionalStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Condition;
 import dmd.Loc;
--- a/dmd/ContinueStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ContinueStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ContinueStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.FuncDeclaration;
 import dmd.IntegerExp;
--- a/dmd/CppMangleState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CppMangleState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CppMangleState;
 
+import dmd.common;
 import dmd.Array;
 import dmd.OutBuffer;
 
--- a/dmd/CtorDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/CtorDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.CtorDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.ArrayTypes;
 import dmd.Loc;
--- a/dmd/DVCondition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DVCondition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DVCondition;
 
+import dmd.common;
 import dmd.Condition;
 import dmd.Identifier;
 import dmd.Module;
--- a/dmd/Dchar.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Dchar.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Dchar;
 
+import dmd.common;
 import core.stdc.wchar_;
 import core.stdc.string;
 import core.stdc.ctype;
--- a/dmd/DebugCondition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DebugCondition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DebugCondition;
 
+import dmd.common;
 import dmd.DVCondition;
 import dmd.Module;
 import dmd.Identifier;
--- a/dmd/DebugSymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DebugSymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DebugSymbol;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Identifier;
 import dmd.Loc;
--- a/dmd/Declaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Declaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Declaration;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Type;
 import dmd.TypedefDeclaration;
--- a/dmd/DeclarationExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DeclarationExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DeclarationExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/DeclarationStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DeclarationStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DeclarationStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.ExpStatement;
 import dmd.Dsymbol;
--- a/dmd/DefaultInitExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DefaultInitExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DefaultInitExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OutBuffer;
 import dmd.Loc;
--- a/dmd/DefaultStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DefaultStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DefaultStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/DelegateExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DelegateExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DelegateExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.AggregateDeclaration;
--- a/dmd/DeleteDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DeleteDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DeleteDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.ArrayTypes;
 import dmd.Loc;
--- a/dmd/DeleteExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DeleteExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DeleteExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/DivAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DivAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DivAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/DivExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DivExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DivExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/DoStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DoStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DoStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/DocComment.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DocComment.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DocComment;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Section;
 import dmd.Macro;
--- a/dmd/DollarExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DollarExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,11 +1,12 @@
-module dmd.DollarExp;
-
-import dmd.IdentifierExp;
-import dmd.Loc;
-import dmd.Identifier;
-import dmd.TOK;
-import dmd.Id;
-
+module dmd.DollarExp;
+
+import dmd.common;
+import dmd.IdentifierExp;
+import dmd.Loc;
+import dmd.Identifier;
+import dmd.TOK;
+import dmd.Id;
+
 class DollarExp : IdentifierExp
 {
 	this(Loc loc)
--- a/dmd/DotExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/DotIdExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotIdExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotIdExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.IntegerExp;
--- a/dmd/DotTemplateExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotTemplateExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotTemplateExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.UnaExp;
 import dmd.OutBuffer;
--- a/dmd/DotTemplateInstanceExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotTemplateInstanceExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotTemplateInstanceExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.UnaExp;
 import dmd.OutBuffer;
--- a/dmd/DotTypeExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotTypeExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotTypeExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/DotVarExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DotVarExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DotVarExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.backend.elem;
--- a/dmd/Dsymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Dsymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Dsymbol;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.STC;
 import dmd.Scope;
--- a/dmd/DsymbolExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DsymbolExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DsymbolExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OutBuffer;
 import dmd.EnumMember;
--- a/dmd/DsymbolTable.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DsymbolTable.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DsymbolTable;
 
+import dmd.common;
 import dmd.StringTable;
 import dmd.Dsymbol;
 import dmd.Identifier;
--- a/dmd/DtorDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/DtorDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.DtorDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Loc;
 import dmd.Global;
--- a/dmd/EnumDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/EnumDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.EnumDeclaration;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.AddExp;
 import dmd.Type;
--- a/dmd/EnumMember.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/EnumMember.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.EnumMember;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Expression;
 import dmd.Type;
--- a/dmd/EqualExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/EqualExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.EqualExp;
 
+import dmd.common;
 import dmd.ErrorExp;
 import dmd.Expression;
 import dmd.Id;
--- a/dmd/ErrorExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ErrorExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ErrorExp;
 
+import dmd.common;
 import dmd.OutBuffer;
 import dmd.IntegerExp;
 import dmd.Loc;
--- a/dmd/ExpInitializer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ExpInitializer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ExpInitializer;
 
+import dmd.common;
 import dmd.Initializer;
 import dmd.DelegateExp;
 import dmd.Loc;
--- a/dmd/ExpStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ExpStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ExpStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Statement;
 import dmd.AssertExp;
--- a/dmd/Expression.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Expression.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Expression;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.TOK;
 import dmd.Argument;
--- a/dmd/File.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/File.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.File;
 
+import dmd.common;
 import dmd.FileName;
 import dmd.Array;
 import dmd.Util;
@@ -47,7 +48,7 @@
 			if (ref_ == 0) {
 				///free(buffer);
 			} else {
-version (_WIN32) {
+version (Windows) {
 				if (ref_ == 2) {
 					UnmapViewOfFile(buffer);
 				}
@@ -77,7 +78,8 @@
 
     int read()
 	{
-version (POSIX) {
+version (Posix)
+{
 		int result = 0;
 
 		string name = this.name.toChars();
@@ -145,7 +147,7 @@
 	err1:
 		result = 1;
 		return result;
-} else version (_WIN32) {
+} else version (Windows) {
 		DWORD size;
 		DWORD numread;
 		HANDLE h;
@@ -275,7 +277,7 @@
 	err:
 		return 1;
 		
-} else version (_WIN32) {
+} else version (Windows) {
 		HANDLE h;
 		DWORD numwritten;
 
--- a/dmd/FileExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FileExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FileExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.UnaExp;
 import dmd.OutBuffer;
--- a/dmd/FileInitExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FileInitExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FileInitExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/FileName.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FileName.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FileName;
 
+import dmd.common;
 import dmd.String;
 import dmd.Array;
 import dmd.OutBuffer;
@@ -41,7 +42,8 @@
 
     override hash_t hashCode()
 	{
-version (_WIN32) {
+version (Windows)
+{
 		// We need a different hashCode because it must be case-insensitive
 		size_t len = str.length;
 		hash_t hash = 0;
@@ -110,7 +112,7 @@
 
 	static pure bool absolute(const(char)[] name)
 	{
-version (_WIN32)
+version (Windows)
 {
 		return (name[0] == '\\') ||
 			(name[0] == '/')  ||
@@ -143,7 +145,8 @@
 				case '/':
 					return null;
 }
-version (_WIN32) {
+version (Windows)
+{
 				case '\\':
 				case ':':
 				case '/':
@@ -188,11 +191,13 @@
 		{
 			switch (c)
 			{
-version (POSIX) {
+version (Posix)
+{
 				case '/':
 				   return str[i+1..$];
 }
-version (_WIN32) {
+version (Windows)
+{
 				case '/':
 				case '\\':
 					return str[i+1..$];
@@ -230,13 +235,16 @@
 		if (n > str.ptr)
 		{
 			auto p = n - 1;
-version (POSIX) {
+version (Posix)
+{
 			if (*p == '/')
 				n--;
-} else version (_WIN32) {
+} else version (Windows)
+{
 			if (*p == '\\' || *p == '/')
 				n--;
-} else {
+} else
+{
 			static assert(false);
 }
 		}
@@ -263,13 +271,16 @@
 
 		char* f = cast(char*)GC.malloc(pathlen + 1 + namelen + 1);
 		memcpy(f, path.ptr, pathlen);
-version (POSIX) {
+version (Posix)
+{
 		if (path[pathlen - 1] != '/')
 		{
 			f[pathlen] = '/';
 			pathlen++;
 		}
-} else version (_WIN32) {
+}
+else version (Windows)
+{
 		if (path[pathlen - 1] != '\\' &&
 			path[pathlen - 1] != '/' &&
 			path[pathlen - 1] != ':')
@@ -277,7 +288,9 @@
 			f[pathlen] = '\\';
 			pathlen++;
 		}
-} else {
+}
+else
+{
 		static assert(false);
 }
 		memcpy(f + pathlen, name.ptr, namelen + 1);
@@ -300,13 +313,15 @@
 
 		memcpy(f, path.ptr, pathlen);
 
-version (POSIX) {
+version (Posix) {
 		if (path[pathlen - 1] != '/')
 		{
 			f[pathlen] = '/';
 			pathlen++;
 		}
-} else version (_WIN32) {
+}
+else version (Windows)
+{
 		if (path[pathlen - 1] != '\\' && 
 			path[pathlen - 1] != '/'  &&
 			path[pathlen - 1] != ':')
@@ -314,7 +329,9 @@
 			f[pathlen] = '\\';
 			pathlen++;
 		}
-} else {
+}
+else
+{
 		static assert(0);
 }
 		memcpy(f + pathlen, name.ptr, namelen + 1);
@@ -355,10 +372,10 @@
 	version (MACINTOSH) {
 						case ',':
 	}
-	version (_WIN32) {
+	version (Windows) {
 						case ';':
 	}
-	version (POSIX) {
+	version (Posix) {
 						case ':':
 	}
 							p++;
@@ -451,7 +468,7 @@
 
 version (POSIX) {
 		return cmp(e,ext) == 0;
-} else version (_WIN32) {
+} else version (Windows) {
 		return icmp(e,ext) == 0;
 } else {
 		static assert(0);
@@ -466,9 +483,9 @@
 	{
 		scope File file = new File(this);
 
-version (_WIN32) {
+version (Win32) {
 		file.touchtime = GC.malloc(WIN32_FIND_DATA.sizeof);	// keep same file time
-} else version (POSIX) {
+} else version (Posix) {
 		file.touchtime = GC.malloc(stat_t.sizeof); // keep same file time
 } else {
 		static assert(0);
@@ -537,7 +554,7 @@
 
     static int exists(string name)
 	{
-version (POSIX) {
+version (Posix) {
 		stat_t st;
 
 		if (stat(toStringz(name), &st) < 0)
@@ -545,7 +562,7 @@
 		if (S_ISDIR(st.st_mode))
 			return 2;
 		return 1;
-} else version (_WIN32) {
+} else version (Win32) {
 		HANDLE h = CreateFileA(toStringz(name), GENERIC_READ, FILE_SHARE_READ, null, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, HANDLE.init);	///
 		if (h == INVALID_HANDLE_VALUE) {
 			return 0;
--- a/dmd/ForStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ForStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ForStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/ForeachRangeStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ForeachRangeStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ForeachRangeStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.TOK;
 import dmd.Token;
--- a/dmd/ForeachStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ForeachStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ForeachStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.TOK;
 import dmd.Token;
--- a/dmd/FuncAliasDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FuncAliasDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FuncAliasDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 
 import dmd.backend.Symbol;
--- a/dmd/FuncDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FuncDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FuncDeclaration;
 
+import dmd.common;
 import dmd.Declaration;
 import dmd.DotIdExp;
 import dmd.AddrExp;
--- a/dmd/FuncExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FuncExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FuncExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.OutBuffer;
--- a/dmd/FuncLiteralDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/FuncLiteralDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.FuncLiteralDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.TOK;
 import dmd.Loc;
--- a/dmd/Global.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Global.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Global;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Param;
 
--- a/dmd/GlobalExpressions.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/GlobalExpressions.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.GlobalExpressions;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.TOK;
 import dmd.Loc;
--- a/dmd/GotoCaseStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/GotoCaseStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.GotoCaseStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.CaseStatement;
--- a/dmd/GotoDefaultStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/GotoDefaultStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.GotoDefaultStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.SwitchStatement;
 import dmd.Loc;
--- a/dmd/GotoStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/GotoStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.GotoStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Scope;
 import dmd.Statement;
--- a/dmd/HaltExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/HaltExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.HaltExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.OutBuffer;
--- a/dmd/IRState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IRState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IRState;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Module;
 import dmd.Dsymbol;
--- a/dmd/Id.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Id.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Id;
 
+import dmd.common;
 import dmd.Identifier;
 import dmd.Lexer;
 
--- a/dmd/Identifier.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Identifier.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Identifier;
 
+import dmd.common;
 import dmd.TOK;
 import dmd.DYNCAST;
 import dmd.Lexer;
--- a/dmd/IdentifierExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IdentifierExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IdentifierExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.TY;
--- a/dmd/IdentityExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IdentityExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IdentityExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.InterState;
 import dmd.Loc;
--- a/dmd/IfStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IfStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IfStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Argument;
 import dmd.Loc;
--- a/dmd/Import.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Import.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Import;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Array;
 import dmd.DsymbolTable;
--- a/dmd/InExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.Loc;
--- a/dmd/IndexExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IndexExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IndexExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/Initializer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Initializer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Initializer;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Scope;
 import dmd.Type;
--- a/dmd/InlineCostState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InlineCostState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InlineCostState;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Expression;
 
--- a/dmd/InlineDoState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InlineDoState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InlineDoState;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Dsymbol;
 import dmd.VarDeclaration;
--- a/dmd/InlineScanState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InlineScanState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InlineScanState;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.ExpInitializer;
 import dmd.Dsymbol;
--- a/dmd/IntegerExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IntegerExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IntegerExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.TY;
--- a/dmd/InterState.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InterState.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InterState;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Dsymbol;
 import dmd.Expression;
--- a/dmd/InterfaceDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InterfaceDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InterfaceDeclaration;
 
+import dmd.common;
 import dmd.ClassDeclaration;
 import dmd.Loc;
 import dmd.DsymbolTable;
--- a/dmd/InvariantDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/InvariantDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.InvariantDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Loc;
 import dmd.Dsymbol;
--- a/dmd/IsExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/IsExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.IsExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.ArrayTypes;
--- a/dmd/Json.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Json.d	Wed Sep 01 18:21:58 2010 +0200
@@ -3,6 +3,7 @@
  */
 module dmd.Json;
 
+import dmd.common;
 import dmd.String;
 import std.stdio : write, writef;
 
--- a/dmd/Keyword.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Keyword.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Keyword;
 
+import dmd.common;
 import dmd.TOK;
 
 struct Keyword
--- a/dmd/LabelDsymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/LabelDsymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.LabelDsymbol;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.LabelStatement;
 import dmd.Identifier;
--- a/dmd/LabelStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/LabelStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.LabelStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Identifier;
 import dmd.TryFinallyStatement;
--- a/dmd/Lexer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Lexer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Lexer;
 
+import dmd.common;
 import dmd.StringTable;
 import dmd.OutBuffer;
 import dmd.Token;
@@ -2627,7 +2628,7 @@
 
 		stringbuffer.writeByte(0);
 
-	version (_WIN32) { /// && __DMC__
+	version (Windows) { /// && __DMC__
 		char* save = __locale_decpoint;
 		__locale_decpoint = cast(char*)".".ptr;
 	}
@@ -2675,7 +2676,7 @@
 			}
 		}
 		
-	version (_WIN32) { ///&& __DMC__
+	version (Windows) { ///&& __DMC__
 		__locale_decpoint = save;
 	}
 		if (errno == ERANGE)
--- a/dmd/Library.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Library.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Library;
 
+import dmd.common;
 import dmd.File;
 import dmd.Array;
 import dmd.StringTable;
--- a/dmd/LineInitExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/LineInitExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.LineInitExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/LinkDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/LinkDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.LinkDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.LINK;
 import dmd.OutBuffer;
--- a/dmd/Loc.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Loc.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Loc;
 
+import dmd.common;
 import dmd.Module;
 import dmd.OutBuffer;
 
--- a/dmd/Lstring.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Lstring.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Lstring;
 
+import dmd.common;
 import dmd.Dchar;
 
 struct Lstring
--- a/dmd/Macro.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Macro.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,113 +1,5 @@
 module dmd.Macro;
 
-struct Macro	/// ???
-{
-}
-
-/**
-It is very important to use version control macros correctly - the
-idea is that host and target are independent. If these are done
-correctly, cross compilers can be built.
-The host compiler and host operating system are also different,
-and are predefined by the host compiler. The ones used in
-dmd are:
-
-Macros defined by the compiler, not the code:
-
-    Compiler:
-	__DMC__		Digital Mars compiler
-	_MSC_VER	Microsoft compiler
-	__GNUC__	Gnu compiler
-
-    Host operating system:
-	_WIN32		Microsoft NT, Windows 95, Windows 98, Win32s,
-			Windows 2000, Win XP, Vista
-	_WIN64		Windows for AMD64
-	linux		Linux
-	__APPLE__	Mac OSX
-	__FreeBSD__	FreeBSD
-	__sun&&__SVR4	Solaris, OpenSolaris (yes, both macros are necessary)
-
-For the target systems, there are the target operating system and
-the target object file format:
-
-    Target operating system:
-	TARGET_WINDOS	Covers 32 bit windows and 64 bit windows
-	TARGET_LINUX	Covers 32 and 64 bit linux
-	TARGET_OSX	Covers 32 and 64 bit Mac OSX
-	TARGET_FREEBSD	Covers 32 and 64 bit FreeBSD
-	TARGET_SOLARIS	Covers 32 and 64 bit Solaris
-	TARGET_NET	Covers .Net
-
-    It is expected that the compiler for each platform will be able
-    to generate 32 and 64 bit code from the same compiler binary.
-
-    Target object module format:
-	OMFOBJ		Intel Object Module Format, used on Windows
-	ELFOBJ		Elf Object Module Format, used on linux, FreeBSD and Solaris
-	MACHOBJ		Mach-O Object Module Format, used on Mac OSX
-
-    There are currently no macros for byte endianness order.
- */
-//version definitions from mars.h
-
-version(IN_GCC) // Changes for the GDC compiler by David Friedman
+struct Macro
 {
-	static assert(false, "GDC not supported");
-}
-
-// default to DMDV2
-version(DMDV1) {} else
-version = DMDV2; // Version 2.0 features
-version = BREAKABI;	// 0 if not ready to break the ABI just yet
-version(DMDV2)
-{
-	version = STRUCTTHISREF;	// if 'this' for struct is a reference, not a pointer
-	version = SNAN_DEFAULT_INIT;// if floats are default initialized to signalling NaN
-	version = SARRAYVALUE;		// static arrays are value types
-}
-
-// Set if C++ mangling is done by the front end
-version(DMDV2)
-{
-	version(POSIX) // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
-		version = CPP_MANGLE;
-}
-
-/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and
- * TARGET_SOLARIS, which are
- * set on the command line via the compiler makefile.
- */
-
-version(_WIN32)
-{
-	version = TARGET_WINDOS;		// Windows dmd generates Windows targets
-	version = OMFOBJ;
-}
-
-version(TARGET_LINUX)
-	version = ELFOBJ;
-version(TARGET_FREEBSD)
-	version = ELFOBJ;
-version(TARGET_SOLARIS)
-	version = ELFOBJ;
-
-
-version(TARGET_OSX)
-	version = MACHOBJ;
-
-/* TODO:
-//Modify OutBuffer::writewchar to write the correct size of wchar
-#if _WIN32
-#define writewchar writeword
-#else
-//This needs a configuration test...
-#define writewchar write4
-#endif
-
-#define INTERFACE_OFFSET	0	// if 1, put classinfo as first entry
-//in interface vtbl[]'s
-#define INTERFACE_VIRTUAL	0	// 1 means if an interface appears
-//in the inheritance graph multiple
-//times, only one is used
-*/
\ No newline at end of file
+}
\ No newline at end of file
--- a/dmd/MinAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/MinAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.MinAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/MinExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/MinExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.MinExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.TY;
 import dmd.ErrorExp;
--- a/dmd/ModAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ModAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ModAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/ModExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ModExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ModExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/Module.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Module.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Module;
 
+import dmd.common;
 import dmd.Package;
 import dmd.DsymbolTable;
 import dmd.backend.TYM;
@@ -318,9 +319,12 @@
 				Identifier pid = cast(Identifier)packages.data[i];
 
 				buf.writestring(pid.toChars());
-version (_WIN32) {
+version (Windows)
+{
 				buf.writeByte('\\');
-} else {
+}
+else
+{
 				buf.writeByte('/');
 }
 			}
--- a/dmd/ModuleDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ModuleDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ModuleDeclaration;
 
+import dmd.common;
 import dmd.Identifier;
 import dmd.Array;
 
--- a/dmd/ModuleInfoDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ModuleInfoDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ModuleInfoDeclaration;
 
+import dmd.common;
 import dmd.VarDeclaration;
 import dmd.Module;
 import dmd.OutBuffer;
--- a/dmd/MulAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/MulAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.MulAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/MulExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/MulExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.MulExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/NegExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NegExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NegExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/NewAnonClassExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NewAnonClassExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NewAnonClassExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OutBuffer;
 import dmd.Loc;
--- a/dmd/NewDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NewDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NewDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Loc;
 import dmd.ArrayTypes;
--- a/dmd/NewExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NewExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NewExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.NewDeclaration;
 import dmd.CtorDeclaration;
--- a/dmd/NotExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NotExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NotExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.UnaExp;
--- a/dmd/NullExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/NullExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.NullExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/OnScopeStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OnScopeStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OnScopeStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.OutBuffer;
 import dmd.HdrGenState;
--- a/dmd/Optimize.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Optimize.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Optimize;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.TOK;
 import dmd.VarExp;
--- a/dmd/OrAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OrAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OrAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/OrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OrExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/OrOrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OrOrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OrOrExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Scope;
 import dmd.InterState;
--- a/dmd/OutBuffer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OutBuffer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OutBuffer;
 
+import dmd.common;
 import std.stdarg;
 import std.exception;
 
@@ -94,7 +95,7 @@
 	
     final void writenl()			// write newline
 	{
-version (_WIN32)
+version (Windows)
 {
 	version (M_UNICODE)
 	{
--- a/dmd/OverExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OverExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OverExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OverloadSet;
 import dmd.Scope;
--- a/dmd/OverloadSet.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/OverloadSet.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.OverloadSet;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.ArrayTypes;
 
--- a/dmd/PREC.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PREC.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PREC;
 
+import dmd.common;
 import dmd.TOK;
 
 /**********************************
--- a/dmd/Package.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Package.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Package;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.Identifier;
 import dmd.Array;
--- a/dmd/Param.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Param.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Param;
 
+import dmd.common;
 import dmd.Array;
 import dmd.OutBuffer;
 
--- a/dmd/Parser.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Parser.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Parser;
 
+import dmd.common;
 import dmd.Lexer;
 import dmd.PostBlitDeclaration;
 import dmd.FileInitExp;
@@ -1428,9 +1429,12 @@
 			}
 			else if (id == Id.System)
 			{
-version (_WIN32) {
+version (Windows)
+{
 				link = LINK.LINKwindows;
-} else {
+}
+else
+{
 				link = LINK.LINKc;
 }
 			}
--- a/dmd/PeelStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PeelStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PeelStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Scope;
 import dmd.Loc;
--- a/dmd/Port.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Port.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Port;
 
+import dmd.common;
 import core.stdc.math;
 
 struct Port
--- a/dmd/PostBlitDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PostBlitDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PostBlitDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Global;
 import dmd.LINK;
--- a/dmd/PostExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PostExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PostExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/PragmaDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PragmaDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PragmaDeclaration;
 
+import dmd.common;
 import dmd.ArrayTypes;
 import dmd.AttribDeclaration;
 import dmd.Loc;
--- a/dmd/PragmaStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PragmaStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PragmaStatement;
 
+import dmd.common;
 import dmd.expression.Util;
 import dmd.Statement;
 import dmd.StringExp;
--- a/dmd/ProtDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ProtDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ProtDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.PROT;
 import dmd.OutBuffer;
--- a/dmd/PtrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/PtrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.PtrExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/RealExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/RealExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.RealExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/RemoveExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/RemoveExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.RemoveExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.Loc;
--- a/dmd/ReturnStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ReturnStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ReturnStatement;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Statement;
 import dmd.GotoStatement;
--- a/dmd/Scope.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Scope.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Scope;
 
+import dmd.common;
 import dmd.Module;
 import dmd.ScopeDsymbol;
 import dmd.FuncDeclaration;
--- a/dmd/ScopeDsymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ScopeDsymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ScopeDsymbol;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Declaration;
 import dmd.Array;
--- a/dmd/ScopeExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ScopeExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ScopeExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.ScopeDsymbol;
--- a/dmd/ScopeStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ScopeStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ScopeStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/Section.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Section.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Section;
 
+import dmd.common;
 import dmd.DocComment;
 import dmd.Scope;
 import dmd.Dsymbol;
--- a/dmd/ShlAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ShlAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ShlAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/ShlExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ShlExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ShlExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.backend.elem;
--- a/dmd/ShrAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ShrAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ShrAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/ShrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ShrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ShrExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/SliceExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SliceExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SliceExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.expression.ArrayLength;
 import dmd.backend.elem;
--- a/dmd/Statement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Statement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Statement;
 
+import dmd.common;
 import dmd.TryCatchStatement;
 import dmd.GotoStatement;
 import dmd.AsmStatement;
--- a/dmd/StaticAssert.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticAssert.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticAssert;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Expression;
 import dmd.OutBuffer;
--- a/dmd/StaticAssertStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticAssertStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticAssertStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.StaticAssert;
 import dmd.OutBuffer;
--- a/dmd/StaticCtorDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticCtorDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticCtorDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Loc;
 import dmd.Dsymbol;
--- a/dmd/StaticDtorDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticDtorDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticDtorDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.VarDeclaration;
 import dmd.Dsymbol;
--- a/dmd/StaticIfCondition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticIfCondition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticIfCondition;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.ScopeDsymbol;
 import dmd.OutBuffer;
--- a/dmd/StaticIfDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StaticIfDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StaticIfDeclaration;
 
+import dmd.common;
 import dmd.ConditionalDeclaration;
 import dmd.ScopeDsymbol;
 import dmd.AttribDeclaration;
--- a/dmd/StorageClassDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StorageClassDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StorageClassDeclaration;
 
+import dmd.common;
 import dmd.AttribDeclaration;
 import dmd.Array;
 import dmd.TOK;
--- a/dmd/String.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/String.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.String;
 
+import dmd.common;
 import dmd.Array;
 
 import core.stdc.string : strlen;
--- a/dmd/StringEntry.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StringEntry.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StringEntry;
 
+import dmd.common;
 import dmd.StringValue;
 import dmd.Dchar;
 import dmd.Lstring;
--- a/dmd/StringExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StringExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StringExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.elem;
 import dmd.InterState;
--- a/dmd/StringTable.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StringTable.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StringTable;
 
+import dmd.common;
 import dmd.StringValue;
 import dmd.StringEntry;
 import dmd.Dchar;
--- a/dmd/StringValue.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StringValue.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StringValue;
 
+import dmd.common;
 import dmd.Lstring;
 import dmd.Dchar;
 
--- a/dmd/StructDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StructDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StructDeclaration;
 
+import dmd.common;
 import dmd.AggregateDeclaration;
 import dmd.FuncDeclaration;
 import dmd.DeclarationExp;
--- a/dmd/StructInitializer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StructInitializer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StructInitializer;
 
+import dmd.common;
 import dmd.Initializer;
 import dmd.TOK;
 import dmd.TypeSArray;
--- a/dmd/StructLiteralExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/StructLiteralExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.StructLiteralExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.MOD;
 import dmd.TypeStruct;
--- a/dmd/SuperExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SuperExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SuperExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OutBuffer;
 import dmd.Loc;
--- a/dmd/SwitchErrorStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SwitchErrorStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SwitchErrorStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.OutBuffer;
 import dmd.Loc;
--- a/dmd/SwitchStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SwitchStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SwitchStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.DefaultStatement;
--- a/dmd/SymOffExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SymOffExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SymOffExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.MATCH;
--- a/dmd/SymbolDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SymbolDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SymbolDeclaration;
 
+import dmd.common;
 import dmd.Declaration;
 import dmd.StructDeclaration;
 import dmd.Loc;
--- a/dmd/SymbolExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SymbolExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SymbolExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.Loc;
--- a/dmd/SynchronizedStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/SynchronizedStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.SynchronizedStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.IntegerExp;
 import dmd.TypeSArray;
--- a/dmd/TemplateAliasParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateAliasParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateAliasParameter;
 
+import dmd.common;
 import dmd.TemplateParameter;
 import dmd.Loc;
 import dmd.Identifier;
--- a/dmd/TemplateDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateDeclaration;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.ScopeDsymbol;
 import dmd.ArrayTypes;
--- a/dmd/TemplateExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.OutBuffer;
 import dmd.Loc;
--- a/dmd/TemplateInstance.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateInstance.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateInstance;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.IntegerExp;
 import dmd.Identifier;
--- a/dmd/TemplateMixin.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateMixin.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateMixin;
 
+import dmd.common;
 import dmd.TemplateInstance;
 import dmd.Array;
 import dmd.Type;
--- a/dmd/TemplateParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateParameter;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Identifier;
 import dmd.Declaration;
--- a/dmd/TemplateThisParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateThisParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateThisParameter;
 
+import dmd.common;
 import dmd.TemplateTypeParameter;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/TemplateTupleParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateTupleParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateTupleParameter;
 
+import dmd.common;
 import dmd.TemplateParameter;
 import dmd.Loc;
 import dmd.Identifier;
--- a/dmd/TemplateTypeParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateTypeParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateTypeParameter;
 
+import dmd.common;
 import dmd.TemplateParameter;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/TemplateValueParameter.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TemplateValueParameter.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TemplateValueParameter;
 
+import dmd.common;
 import dmd.TemplateParameter;
 import dmd.Scope;
 import dmd.Declaration;
--- a/dmd/ThisDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ThisDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ThisDeclaration;
 
+import dmd.common;
 import dmd.VarDeclaration;
 import dmd.Dsymbol;
 import dmd.Loc;
--- a/dmd/ThisExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ThisExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ThisExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.StructDeclaration;
--- a/dmd/ThrowStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/ThrowStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.ThrowStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/Token.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Token.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Token;
 
+import dmd.common;
 import dmd.TOK;
 import dmd.Identifier;
 import dmd.OutBuffer;
--- a/dmd/TraitsExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TraitsExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TraitsExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.ArrayTypes;
--- a/dmd/TryCatchStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TryCatchStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TryCatchStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Array;
 import dmd.Loc;
--- a/dmd/TryFinallyStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TryFinallyStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TryFinallyStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Loc;
 import dmd.OutBuffer;
--- a/dmd/Tuple.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Tuple.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Tuple;
 
+import dmd.common;
 import dmd.ArrayTypes;
 import dmd.DYNCAST;
 
--- a/dmd/TupleDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TupleDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TupleDeclaration;
 
+import dmd.common;
 import dmd.Declaration;
 import dmd.Argument;
 import dmd.ArrayTypes;
--- a/dmd/TupleExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TupleExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TupleExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.TupleDeclaration;
 import dmd.backend.elem;
--- a/dmd/Type.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Type.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Type;
 
+import dmd.common;
 import dmd.TY;
 import dmd.Argument;
 import dmd.TOK;
--- a/dmd/TypeAArray.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeAArray.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeAArray;
 
+import dmd.common;
 import dmd.TypeArray;
 import dmd.MOD;
 import dmd.ArrayTypes;
--- a/dmd/TypeArray.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeArray.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeArray;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeNext;
 import dmd.Id;
--- a/dmd/TypeBasic.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeBasic.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeBasic;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Id;
 import dmd.MOD;
--- a/dmd/TypeClass.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeClass.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeClass;
 
+import dmd.common;
 import dmd.Type;
 import dmd.ClassDeclaration;
 import dmd.TypeInstance;
--- a/dmd/TypeDArray.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeDArray.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeDArray;
 
+import dmd.common;
 import dmd.TypeArray;
 import dmd.MOD;
 import dmd.Id;
--- a/dmd/TypeDelegate.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeDelegate.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeDelegate;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeNext;
 import dmd.MOD;
--- a/dmd/TypeEnum.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeEnum.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeEnum;
 
+import dmd.common;
 import dmd.Type;
 import dmd.EnumDeclaration;
 import dmd.Scope;
--- a/dmd/TypeExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.backend.TYM;
 import dmd.backend.Util;
--- a/dmd/TypeFunction.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeFunction.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeFunction;
 
+import dmd.common;
 import dmd.TypeNext;
 import dmd.TypeSArray;
 import dmd.TypeArray;
--- a/dmd/TypeIdentifier.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeIdentifier.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeIdentifier;
 
+import dmd.common;
 import dmd.TypeQualified;
 import dmd.MOD;
 import dmd.Identifier;
--- a/dmd/TypeInfoArrayDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoArrayDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoArrayDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.Type;
--- a/dmd/TypeInfoAssociativeArrayDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoAssociativeArrayDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoAssociativeArrayDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeAArray;
 import dmd.TY;
--- a/dmd/TypeInfoClassDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoClassDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoClassDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.ClassInfoDeclaration;
--- a/dmd/TypeInfoConstDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoConstDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoConstDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.Type;
--- a/dmd/TypeInfoDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoDeclaration;
 
+import dmd.common;
 import dmd.VarDeclaration;
 import dmd.Type;
 import dmd.Dsymbol;
--- a/dmd/TypeInfoDelegateDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoDelegateDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoDelegateDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.TypeDelegate;
--- a/dmd/TypeInfoEnumDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoEnumDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoEnumDeclaration;
 
+import dmd.common;
 import dmd.TY;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/TypeInfoFunctionDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoFunctionDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,15 +1,16 @@
-module dmd.TypeInfoFunctionDeclaration;
-
-import dmd.Type;
-import dmd.TypeInfoDeclaration;
-import dmd.backend.dt_t;
-
+module dmd.TypeInfoFunctionDeclaration;
+
+import dmd.common;
+import dmd.Type;
+import dmd.TypeInfoDeclaration;
+import dmd.backend.dt_t;
+
 class TypeInfoFunctionDeclaration : TypeInfoDeclaration
 {
 	this(Type tinfo)
 	{
-		super(tinfo, 0);
-        type = Type.typeinfofunction.type;
+		super(tinfo, 0);
+        type = Type.typeinfofunction.type;
 	}
 
 	override void toDt(dt_t** pdt)
--- a/dmd/TypeInfoInterfaceDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoInterfaceDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoInterfaceDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.ClassInfoDeclaration;
--- a/dmd/TypeInfoInvariantDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoInvariantDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoInvariantDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.backend.dt_t;
--- a/dmd/TypeInfoPointerDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoPointerDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoPointerDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.TypePointer;
--- a/dmd/TypeInfoSharedDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoSharedDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoSharedDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.backend.dt_t;
--- a/dmd/TypeInfoStaticArrayDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoStaticArrayDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoStaticArrayDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.TypeSArray;
--- a/dmd/TypeInfoStructDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoStructDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoStructDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TY;
 import dmd.MOD;
--- a/dmd/TypeInfoTupleDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoTupleDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoTupleDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.WANT;
--- a/dmd/TypeInfoTypedefDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInfoTypedefDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInfoTypedefDeclaration;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInfoDeclaration;
 import dmd.TypedefDeclaration;
--- a/dmd/TypeInstance.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeInstance.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeInstance;
 
+import dmd.common;
 import dmd.TypeQualified;
 import dmd.TemplateAliasParameter;
 import dmd.TemplateDeclaration;
--- a/dmd/TypeNewArray.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeNewArray.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeNewArray;
 
+import dmd.common;
 import dmd.HdrGenState;
 import dmd.MOD;
 import dmd.OutBuffer;
--- a/dmd/TypeNext.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeNext.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeNext;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeAArray;
 import dmd.TY;
--- a/dmd/TypePointer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypePointer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypePointer;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Loc;
 import dmd.Scope;
--- a/dmd/TypeQualified.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeQualified.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeQualified;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Import;
 import dmd.DsymbolExp;
--- a/dmd/TypeReference.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeReference.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeReference;
 
+import dmd.common;
 import dmd.Type;
 import dmd.MOD;
 import dmd.TypeNext;
--- a/dmd/TypeReturn.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeReturn.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeReturn;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.MOD;
 import dmd.Type;
--- a/dmd/TypeSArray.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeSArray.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeSArray;
 
+import dmd.common;
 import dmd.TypeArray;
 import dmd.TypeInfoStaticArrayDeclaration;
 import dmd.TypeAArray;
--- a/dmd/TypeSlice.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeSlice.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeSlice;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeNext;
 import dmd.MOD;
--- a/dmd/TypeStruct.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeStruct.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeStruct;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypeInstance;
 import dmd.StructDeclaration;
--- a/dmd/TypeTuple.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeTuple.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeTuple;
 
+import dmd.common;
 import dmd.Type;
 import dmd.ArrayTypes;
 import dmd.MOD;
--- a/dmd/TypeTypedef.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeTypedef.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeTypedef;
 
+import dmd.common;
 import dmd.Type;
 import dmd.TypedefDeclaration;
 import dmd.MOD;
--- a/dmd/TypeTypeof.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeTypeof.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeTypeof;
 
+import dmd.common;
 import dmd.TypeFunction;
 import dmd.TypeQualified;
 import dmd.Expression;
--- a/dmd/TypedefDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypedefDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypedefDeclaration;
 
+import dmd.common;
 import dmd.Declaration;
 import dmd.Initializer;
 import dmd.Type;
--- a/dmd/TypeidExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/TypeidExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.TypeidExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.OutBuffer;
--- a/dmd/UAddExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UAddExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UAddExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.UnaExp;
--- a/dmd/UnaExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UnaExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UnaExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.InterState;
 import dmd.TY;
--- a/dmd/UnionDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UnionDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UnionDeclaration;
 
+import dmd.common;
 import dmd.StructDeclaration;
 import dmd.Loc;
 import dmd.Identifier;
--- a/dmd/UnitTestDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UnitTestDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UnitTestDeclaration;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.Loc;
 import dmd.Dsymbol;
--- a/dmd/UnrolledLoopStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UnrolledLoopStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UnrolledLoopStatement;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Statement;
 import dmd.InterState;
--- a/dmd/UshrAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UshrAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UshrAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/UshrExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/UshrExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.UshrExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/Utf.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Utf.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Utf;
 
+import dmd.common;
 import dmd.Dchar;
 
 import std.utf;
--- a/dmd/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.Util;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Library;
 import dmd.File;
@@ -690,7 +691,8 @@
 
 int runLINK()
 {
-version (_WIN32) {
+version (_WIN32)
+{
     string p;
     int i;
     int status;
@@ -1045,7 +1047,7 @@
     }
 
     status = executearg0(cmd, args);
-version (_WIN32) {
+version (Windows) {
     if (status == -1) {
 		auto cmdZ = toStringz(cmd);
 		auto argsZ = toStringz(args);
@@ -1092,7 +1094,7 @@
 	auto fileZ = toStringz(file);
 	auto argsZ = toStringz(args);
     return spawnl(0, fileZ, fileZ, argsZ, null);
-} else version (XXX) { ///#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+} else version (Posix) { ///#elif linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
 	assert(false);
 	/+
     char *full;
--- a/dmd/VarDeclaration.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VarDeclaration.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VarDeclaration;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Declaration;
 import dmd.SliceExp;
--- a/dmd/VarExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VarExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VarExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Declaration;
 import dmd.InterState;
--- a/dmd/VersionCondition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VersionCondition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VersionCondition;
 
+import dmd.common;
 import dmd.DVCondition;
 import dmd.Loc;
 import dmd.Module;
--- a/dmd/VersionSymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VersionSymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VersionSymbol;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Loc;
 import dmd.Identifier;
--- a/dmd/VoidInitializer.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VoidInitializer.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VoidInitializer;
 
+import dmd.common;
 import dmd.Initializer;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/VolatileStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/VolatileStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.VolatileStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.ArrayTypes;
 import dmd.Scope;
--- a/dmd/WhileStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/WhileStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.WhileStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.Scope;
--- a/dmd/WithScopeSymbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/WithScopeSymbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.WithScopeSymbol;
 
+import dmd.common;
 import dmd.ScopeDsymbol;
 import dmd.WithStatement;
 import dmd.Loc;
--- a/dmd/WithStatement.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/WithStatement.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.WithStatement;
 
+import dmd.common;
 import dmd.Statement;
 import dmd.Expression;
 import dmd.VarDeclaration;
--- a/dmd/XorAssignExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/XorAssignExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.XorAssignExp;
 
+import dmd.common;
 import dmd.BinExp;
 import dmd.Loc;
 import dmd.Expression;
--- a/dmd/XorExp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/XorExp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.XorExp;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Identifier;
 import dmd.InterState;
--- a/dmd/backend/Blockx.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Blockx.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Blockx;
 
+import dmd.common;
 import dmd.Module;
 import dmd.Declaration;
 import dmd.ClassDeclaration;
--- a/dmd/backend/Classsym.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Classsym.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Classsym;
 
+import dmd.common;
 import dmd.backend.Symbol;
 
 alias Symbol Classsym;
\ No newline at end of file
--- a/dmd/backend/Config.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Config.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Config;
 
+import dmd.common;
 import dmd.backend.LINKAGE;
 import dmd.EnumUtils;
 
--- a/dmd/backend/Configv.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Configv.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Configv;
 
+import dmd.common;
 import dmd.backend.LANG;
 
 // Configuration that is not saved in precompiled header
@@ -15,5 +16,5 @@
     LANG language;		// message language
     int errmax;			// max error count
 }
-
+
 Configv configv;
\ No newline at end of file
--- a/dmd/backend/Cstate.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Cstate.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Cstate;
 
+import dmd.common;
 import dmd.backend.Symbol;
 import dmd.backend.LIST;
 import dmd.backend.symtab_t;
--- a/dmd/backend/DT.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/DT.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.DT;
 
+import dmd.common;
 import dmd.backend.dt_t;
 
 enum DT
--- a/dmd/backend/LIST.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/LIST.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.LIST;
 
+import dmd.common;
 import dmd.backend.Symbol;
 
 struct LIST
--- a/dmd/backend/RTLSYM.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/RTLSYM.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.RTLSYM;
 
+import dmd.common;
 import dmd.backend.Symbol;
 
 enum RTLSYM
--- a/dmd/backend/StringTab.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/StringTab.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.StringTab;
 
+import dmd.common;
 import dmd.Module;
 import dmd.backend.Symbol;
 
--- a/dmd/backend/Symbol.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Symbol.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Symbol;
 
+import dmd.common;
 import dmd.backend.dt_t;
 import dmd.backend.TYPE;
 import dmd.backend.LIST;
--- a/dmd/backend/TYFL.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/TYFL.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.TYFL;
 
+import dmd.common;
 import dmd.backend.Util;
 
 extern(C++) ubyte* get_tytab();
--- a/dmd/backend/TYPE.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/TYPE.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.TYPE;
 
+import dmd.common;
 import dmd.backend.Util;
 import dmd.backend.Srcpos;
 import dmd.backend.elem;
--- a/dmd/backend/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.Util;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Loc;
 
--- a/dmd/backend/block.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/block.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.block;
 
+import dmd.common;
 import dmd.backend.elem;
 import dmd.backend.LIST;
 import dmd.backend.regm_t;
--- a/dmd/backend/code.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/code.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.code;
 
+import dmd.common;
 import dmd.backend.targ_types;
 import dmd.backend.Srcpos;
 import dmd.backend.elem;
--- a/dmd/backend/con_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/con_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.con_t;
 
+import dmd.common;
 import dmd.backend.cse_t;
 import dmd.backend.immed_t;
 import dmd.backend.regm_t;
--- a/dmd/backend/cse_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/cse_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.cse_t;
 
+import dmd.common;
 import dmd.backend.elem;
 import dmd.backend.regm_t;
 
--- a/dmd/backend/dt_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/dt_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.dt_t;
 
+import dmd.common;
 import dmd.backend.targ_types;
 import dmd.backend.Symbol;
 
--- a/dmd/backend/elem.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/elem.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.elem;
 
+import dmd.common;
 import dmd.Port;
 import dmd.Complex;
 
--- a/dmd/backend/enum_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/enum_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.enum_t;
 
+import dmd.common;
 import dmd.backend.SEN;
 import dmd.backend.Symbol;
 import dmd.backend.LIST;
--- a/dmd/backend/func_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/func_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.func_t;
 
+import dmd.common;
 import dmd.backend.LIST;
 import dmd.backend.block;
 import dmd.backend.symtab_t;
--- a/dmd/backend/glue.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/glue.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.glue;
 
+import dmd.common;
 import dmd.Array;
 import dmd.Dsymbol;
 import dmd.File;
--- a/dmd/backend/iasm.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/iasm.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.iasm;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.LabelDsymbol;
 import dmd.AsmStatement;
--- a/dmd/backend/immed_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/immed_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.immed_t;
 
+import dmd.common;
 import dmd.backend.targ_types;
 import dmd.backend.regm_t;
 import dmd.backend.REGMAX;
--- a/dmd/backend/rel.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/rel.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.rel;
 
+import dmd.common;
 import dmd.backend.OPER;
 
 extern (C++) extern
--- a/dmd/backend/struct_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/struct_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.struct_t;
 
+import dmd.common;
 import dmd.backend.targ_types;
 import dmd.backend.LIST;
 import dmd.backend.Symbol;
--- a/dmd/backend/symtab_t.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/backend/symtab_t.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.backend.symtab_t;
 
+import dmd.common;
 import dmd.backend.Symbol;
 import dmd.backend.Util;
 import dmd.backend.SYMIDX;
--- a/dmd/codegen/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/codegen/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.codegen.Util;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Id;
 import dmd.IRState;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dmd/common.d	Wed Sep 01 18:21:58 2010 +0200
@@ -0,0 +1,182 @@
+/**
+ * this module is imported in all modules in the dmd package
+ * and thus can be used for commonly used aliases etc.
+ */
+module dmd.common;
+
+// versions specified in a module are local to that module even if the module is imported by another one, see code at the bottom
+// until a solution is found, at least check the given versions for consistency
+
+pragma(msg, "checking predefined versions for consistency...");
+
+version(DMDV1)
+	version(DMDV2)
+		static assert(false, "DMDV1 and DMDV2 can't be set both");
+
+version(DMDV2)
+{
+	version(STRUCTTHISREF) {} else
+		static assert(false, "DMDV2 requires STRUCTTHISREF. 'this' for struct is a reference");
+	version(SNAN_DEFAULT_INIT) {} else
+		static assert(false, "DMDV2 requires SNAN_DEFAULT_INIT. floats are default initialized to signalling NaN");
+	version(SARRAYVALUE) {} else
+		static assert(false, "DMDV2 requires SARRAYVALUE. static arrays are value types");
+}
+
+version(DMDV2)
+	version(Posix) // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS // TODO:
+		version(CPP_MANGLE) {} else
+			static assert(false, "CPP_MANGLE must be set if DMDV2 and a Posix target is specified. C++ mangling is done by the front end");
+
+version(Win32)
+{
+	version(_WIN32) {} else
+		static assert(false, "Set _WIN32 on Win32");
+	version(TARGET_WINDOS) {} else
+		static assert(false, "TARGET_WINDOS must be specified on Windows");
+	version(OMFOBJ) {} else
+		static assert(false, "OMFOBJ must be used on Windows");
+}
+else version(Win64)
+{
+	static assert(false, "now we need Win64 support");
+}
+
+version(Posix)
+	version(POSIX) {} else
+		static assert(false, "POSIX must be set on Posix");
+
+version(TARGET_LINUX)
+	version(ELFOBJ) {} else
+		static assert(false, "TARGET_LINUX requires ELFOBJ");
+version(TARGET_FREEBSD)
+	version(ELFOBJ) {} else
+		static assert(false, "TARGET_FREEBSD requires ELFOBJ");
+version(TARGET_SOLARIS)
+	version(ELFOBJ) {} else
+		static assert(false, "TARGET_SOLARIS requires ELFOBJ");
+
+version(TARGET_OSX)
+	version(MACHOBJ) {} else
+		static assert(false, "TARGET_OSX requires MACHOBJ");
+
+
+version(IN_GCC) // Changes for the GDC compiler by David Friedman
+{
+	static assert(false, "IN_GCC is not supported");
+}
+
+/+
+/*
+It is very important to use version control macros correctly - the
+idea is that host and target are independent. If these are done
+correctly, cross compilers can be built.
+The host compiler and host operating system are also different,
+and are predefined by the host compiler. The ones used in
+dmd are:
+
+Macros defined by the compiler, not the code:
+
+    Compiler:
+	__DMC__		Digital Mars compiler
+	_MSC_VER	Microsoft compiler
+	__GNUC__	Gnu compiler
+
+    Host operating system:
+	_WIN32		Microsoft NT, Windows 95, Windows 98, Win32s,
+			Windows 2000, Win XP, Vista
+	_WIN64		Windows for AMD64
+	linux		Linux
+	__APPLE__	Mac OSX
+	__FreeBSD__	FreeBSD
+	__sun&&__SVR4	Solaris, OpenSolaris (yes, both macros are necessary)
+
+For the target systems, there are the target operating system and
+the target object file format:
+
+    Target operating system:
+	TARGET_WINDOS	Covers 32 bit windows and 64 bit windows
+	TARGET_LINUX	Covers 32 and 64 bit linux
+	TARGET_OSX	Covers 32 and 64 bit Mac OSX
+	TARGET_FREEBSD	Covers 32 and 64 bit FreeBSD
+	TARGET_SOLARIS	Covers 32 and 64 bit Solaris
+	TARGET_NET	Covers .Net
+
+    It is expected that the compiler for each platform will be able
+    to generate 32 and 64 bit code from the same compiler binary.
+
+    Target object module format:
+	OMFOBJ		Intel Object Module Format, used on Windows
+	ELFOBJ		Elf Object Module Format, used on linux, FreeBSD and Solaris
+	MACHOBJ		Mach-O Object Module Format, used on Mac OSX
+
+    There are currently no macros for byte endianness order.
+ */
+//version definitions from mars.h
+
+pragma(msg, "setting up versions...");
+
+// default to DMDV2
+version(DMDV1) {} else
+version = DMDV2; // Version 2.0 features
+version = BREAKABI;	// 0 if not ready to break the ABI just yet
+version(DMDV2)
+{
+	version = STRUCTTHISREF;	// if 'this' for struct is a reference, not a pointer
+	version = SNAN_DEFAULT_INIT;// if floats are default initialized to signalling NaN
+	version = SARRAYVALUE;		// static arrays are value types
+}
+
+// Set if C++ mangling is done by the front end
+version(DMDV2)
+{
+	version(Posix) // TARGET_LINUX || TARGET_OSX || TARGET_FREEBSD || TARGET_SOLARIS
+		version = CPP_MANGLE;
+}
+
+/* Other targets are TARGET_LINUX, TARGET_OSX, TARGET_FREEBSD and
+ * TARGET_SOLARIS, which are
+ * set on the command line via the compiler makefile.
+ */
+
+version(Win32)
+{
+	version = _WIN32;
+	version = TARGET_WINDOS;		// Windows dmd generates Windows targets
+	version = OMFOBJ;
+}
+else version(Win64)
+{
+	static assert(false, "now we need Win64 support");
+}
+
+version(Posix)
+	version = POSIX;
+
+version(TARGET_LINUX)
+	version = ELFOBJ;
+version(TARGET_FREEBSD)
+	version = ELFOBJ;
+version(TARGET_SOLARIS)
+	version = ELFOBJ;
+
+
+version(TARGET_OSX)
+	version = MACHOBJ;
+
+/* TODO:
+//Modify OutBuffer::writewchar to write the correct size of wchar
+#if _WIN32
+#define writewchar writeword
+#else
+//This needs a configuration test...
+#define writewchar write4
+#endif
+
+#define INTERFACE_OFFSET	0	// if 1, put classinfo as first entry
+//in interface vtbl[]'s
+#define INTERFACE_VIRTUAL	0	// 1 means if an interface appears
+//in the inheritance graph multiple
+//times, only one is used
+*/
++/
\ No newline at end of file
--- a/dmd/condition/util/findCondition.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/condition/util/findCondition.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.condition.util.findCondition;
 
+import dmd.common;
 import dmd.String;
 import dmd.Array;
 import dmd.Identifier;
--- a/dmd/declaration/Match.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/declaration/Match.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,14 +1,15 @@
 module dmd.declaration.Match;
 
+import dmd.common;
 import dmd.FuncDeclaration;
 import dmd.MATCH;
 
-struct Match
-{
+struct Match
+{
 	int count;			// number of matches found
     MATCH last;			// match level of lastf
     FuncDeclaration lastf;	// last matching function we found
     FuncDeclaration nextf;	// current matching function
-    FuncDeclaration anyf;	// pick a func, any func, to use for error recovery
-}
-
+    FuncDeclaration anyf;	// pick a func, any func, to use for error recovery
+}
+
--- a/dmd/expression/Add.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Add.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Add;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/expression/And.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/And.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.And;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.IntegerExp;
--- a/dmd/expression/ArrayLength.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/ArrayLength.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.ArrayLength;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.StringExp;
--- a/dmd/expression/Cat.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Cat.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Cat;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/expression/Cmp.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Cmp.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Cmp;
 
+import dmd.common;
 import dmd.IntegerExp;
 import dmd.Loc;
 import dmd.TOK;
--- a/dmd/expression/Com.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Com.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Com;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.IntegerExp;
--- a/dmd/expression/Div.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Div.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Div;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/expression/Equal.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Equal.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Equal;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.TOK;
--- a/dmd/expression/Identity.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Identity.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Identity;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.TOK;
--- a/dmd/expression/Index.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Index.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Index;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Loc;
 import dmd.StringExp;
--- a/dmd/expression/Min.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Min.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Min;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/expression/Mod.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Mod.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Mod;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Type;
 import dmd.Expression;
--- a/dmd/expression/Mul.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Mul.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Mul;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.RealExp;
@@ -32,7 +33,7 @@
 		}
 		else if (e2.type.isreal())
 		{
-			r = e2.toReal();
+			r = e2.toReal();
 			c = e1.toComplex();
 			c = Complex!(real)(r * c.re, r * c.im);
 		}
--- a/dmd/expression/Neg.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Neg.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Neg;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Loc;
 import dmd.RealExp;
--- a/dmd/expression/Not.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Not.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Not;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.IntegerExp;
--- a/dmd/expression/Or.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Or.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Or;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.IntegerExp;
--- a/dmd/expression/Ptr.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Ptr.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Ptr;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.TOK;
--- a/dmd/expression/Shl.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Shl.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Shl;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.IntegerExp;
--- a/dmd/expression/Shr.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Shr.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Shr;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/expression/Slice.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Slice.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Slice;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Type;
 import dmd.Loc;
--- a/dmd/expression/Ushr.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Ushr.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Ushr;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.Loc;
--- a/dmd/expression/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Util;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.Loc;
 import dmd.RealExp;
@@ -62,6 +63,7 @@
 import dmd.Util;
 import dmd.TypeAArray;
 import dmd.Id;
+import dmd.PtrExp;
 
 import std.stdio : writef;
 
--- a/dmd/expression/Xor.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/Xor.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.Xor;
 
+import dmd.common;
 import dmd.Type;
 import dmd.Expression;
 import dmd.IntegerExp;
--- a/dmd/expression/shift_optimize.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/shift_optimize.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.shift_optimize;
 
+import dmd.common;
 import dmd.Expression;
 import dmd.BinExp;
 import dmd.Type;
--- a/dmd/expression/util/arrayTypeCompatible.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/expression/util/arrayTypeCompatible.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.expression.util.arrayTypeCompatible;
 
+import dmd.common;
 import dmd.Loc;
 import dmd.Type;
 import dmd.TY;
--- a/dmd/interpret/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/interpret/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.interpret.Util;
 
+import dmd.common;
 import dmd.StructDeclaration;
 import dmd.Expression;
 import dmd.FuncDeclaration;
--- a/dmd/templates/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/templates/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.templates.Util;
 
+import dmd.common;
 import dmd.Dsymbol;
 import dmd.Type;
 import dmd.Expression;
--- a/dmd/type/Util.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/dmd/type/Util.d	Wed Sep 01 18:21:58 2010 +0200
@@ -1,5 +1,6 @@
 module dmd.type.Util;
 
+import dmd.common;
 import dmd.TY;
 import dmd.Expression;
 import dmd.Scope;
--- a/main.d	Tue Aug 31 23:57:32 2010 +0100
+++ b/main.d	Wed Sep 01 18:21:58 2010 +0200
@@ -290,12 +290,17 @@
 }
     VersionCondition.addPredefinedGlobalIdent("all");
 
-version (_WIN32) {
-    inifile(args[0], "sc.ini");
-} else version (POSIX) {///linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
-    inifile(args[0], "dmd.conf");
-} else {
-        static assert (false, "fix this");
+version (Windows)
+{
+	inifile(args[0], "sc.ini");
+}
+ else version (Posix) ///linux || __APPLE__ || __FreeBSD__ || __sun&&__SVR4
+{
+	inifile(args[0], "dmd.conf");
+}
+else
+{
+	static assert (false, "fix this");
 }
     args = getenv_setargv("DFLAGS", args);
 
@@ -578,7 +583,7 @@
             }
             else if (memcmp(p + 1, "man".ptr, 3) == 0)
             {
-version (_WIN32) {
+version (Windows) {
 version (DMDV1) {
                 browse("http://www.digitalmars.com/d/1.0/dmd-windows.html");
 } else {
@@ -800,7 +805,7 @@
 		String s = cast(String) files.data[i];
         string mp = s.str;
 
-version (_WIN32) {
+version (Windows) {
 		char[] copy = null;
         // Convert / to \ so linker will work
         foreach (j, c; mp)