[nem-en] building with msbuild

NoiseEHC NoiseEHC at freemail.hu
Thu Mar 16 19:41:53 CET 2006


Here is a patch (do not commit just try it out since it is not 
finished). BTW you can commit, will not break anything.
Ahh but at no circumstances shall you commit the modified 
LibrariesLoader.n...

So I normally compile via MinGW then copy out.stage3/* and the 
tools/msbuild/* to /program files/nemerle.
Then I can compile with build.cmd
Finally if I copy bin/Debug to /program files/nemerle I can compile again :)

So it seems that greedy loading was the problem. Somehow I skipped this 
part mentally while reading Michal's
response... :( Another problem can be if you compile 
Nemerle.Compiler.dll and Nemerle.MsBuild.Tasks.dll
with different Nemerle.dlls. I can assure you that it will not work... :)

The remaining problem is that when I use NoStdMacros then it will not 
compile.
    C:\MinGW\1.0\home\Administrator\nemerle\lib\tree.n(39,48,39,59): 
error : expecting identifier after `.'
    C:\MinGW\1.0\home\Administrator\nemerle\lib\tree.n(57,25,57,36): 
error : expecting identifier after `.'
I have no idea why... Clearly the compiler should not depend on 
Nemerle.Macros.dll didn't it?
With the patched compiler you can see that it always loads 
Nemerle.Macros.dll what can load a different
Nemerle.dll with greedy loading -> the problem...

Another problem I noticed while digging in the compiler source is the 
special handling of System.Xml.dll.
My advice is to ditch that.

BTW why that greedy loading is necessary? Can we kill that?

Another question: why do you need the ability to use two different 
Nemerle.dll?

> However I think there may be problems, if n.c.dll and n.m.dll use
> different n.dll. That is I don't quite get why n.c.dll is linked to
> different version of n.dll, than you're trying to link now.

<- I am talking about that. Or is it just an example of the bug?

-------------- next part --------------

Property changes on: ncc
___________________________________________________________________
Name: svn:ignore
   - ChangeLog
out.stage[0-9]
nte
tags
.gdbinit

out.winboot

   + ChangeLog
out.stage[0-9]
nte
tags
.gdbinit

out.winboot
bin
obj


Index: ncc/Nemerle.Compiler.nproj
===================================================================
--- ncc/Nemerle.Compiler.nproj	(revision 0)
+++ ncc/Nemerle.Compiler.nproj	(revision 0)
@@ -0,0 +1,242 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.Compiler</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="codedom" />
+		<Folder Include="external" />
+		<Folder Include="generation" />
+		<Folder Include="hierarchy" />
+		<Folder Include="misc" />
+		<Folder Include="parsing" />
+		<Folder Include="typing" />
+		<Folder Include="completion" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="CompilationOptions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeGenerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeProvider.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/Codec.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/InternalTypes.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/LibrariesLoader.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/HierarchyEmitter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/ILEmitter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/ImplementsWrapperMaker.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/MatchingCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/DecisionTreeCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/Typer3.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/Typer4.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ExtensionMethod.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/BuiltinMethod.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ClassMembers.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/CustomAttribute.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/DelegateClassGen.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/GlobalEnv.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/MacroClassGen.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/NamespaceTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ScanTypeHierarchy.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypeBuilder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypeInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypesManager.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/XmlDump.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/PrettyPrint.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/Stats.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/AST.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/Lexer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/MainParser-Extensions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/MainParser.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/ParseTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/PreParser.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/PreParserIndent.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/Utility.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="passes.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/ConstantFolder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/DecisionTreeBuilder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/ErrorMessage.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/LocalContext.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/LocalValue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MType.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MacroColorizer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MacroRegistry.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Macros.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Messenger.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/OverloadPossibility.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/RestartInErrorMode.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Solver.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/StaticTyVar.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Subst.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TyVar.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TyVarEnv.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TypedTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-CallTyper.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-DelayedTyping.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-OverloadSelection.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-PatternTyper.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer2.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CodeCompletionEngine.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CompletionEngineError.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CompletionEngineTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="System.Xml" />
+		<Reference Include="bin/Debug/Nemerle.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/NCC.nproj
===================================================================
--- ncc/NCC.nproj	(revision 0)
+++ ncc/NCC.nproj	(revision 0)
@@ -0,0 +1,37 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Exe</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>NCC</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Compile Include="main.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="bin/Debug/Nemerle.dll" />
+		<Reference Include="bin/Debug/Nemerle.Compiler.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.MSBuild.Tasks.nproj
===================================================================
--- ncc/Nemerle.MSBuild.Tasks.nproj	(revision 0)
+++ ncc/Nemerle.MSBuild.Tasks.nproj	(revision 0)
@@ -0,0 +1,40 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.MSBuild.Tasks</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="../tools/msbuild-task" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="../tools/msbuild-task/MSBuildTask.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="bin\Debug\Nemerle.dll" />
+		<Reference Include="Microsoft.Build.Tasks.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.Macros.nproj
===================================================================
--- ncc/Nemerle.Macros.nproj	(revision 0)
+++ ncc/Nemerle.Macros.nproj	(revision 0)
@@ -0,0 +1,92 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.Macros</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="../macros" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="../macros/Profiling.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/xml.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/text.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/io.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/core.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/compiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/assertions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/operators.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/concurrency.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Util.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Nemerle.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Memoize.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Logging.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Internals.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/English.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Data.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/DesignPatterns.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="System.Xml" />
+		<Reference Include="bin\Debug\Nemerle.dll" />
+		<Reference Include="bin\Debug\Nemerle.Compiler.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/build.cmd
===================================================================
--- ncc/build.cmd	(revision 0)
+++ ncc/build.cmd	(revision 0)
@@ -0,0 +1,6 @@
+msbuild Nemerle.nproj
+msbuild Nemerle.Compiler.nproj
+msbuild Nemerle.Macros.nproj
+msbuild NCC.nproj
+msbuild Nemerle.MSBuild.Tasks.nproj
+copy ..\tools\msbuild-task\Nemerle.MSBuild.targets bin\Debug
Index: ncc/Nemerle.nproj
===================================================================
--- ncc/Nemerle.nproj	(revision 0)
+++ ncc/Nemerle.nproj	(revision 0)
@@ -0,0 +1,122 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="..\lib" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="..\lib\AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\concurrency.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\core.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\getopt.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\hashtable.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\heap.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\icloneable.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\icollection.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\idictionary.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\idictionaryenumerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\input.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\internal-numbered.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\internal.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\LazyValue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\linkedlist.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\list.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\listenumerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\macros.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\narray.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\nstring.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\oldapi.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\option.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\pair.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\PipeReader.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\PipeWriter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\queue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\set.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\stack.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\tree.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/build.cmd
===================================================================
--- ncc/build.cmd	(revision 0)
+++ ncc/build.cmd	(revision 0)
@@ -0,0 +1,6 @@
+msbuild Nemerle.nproj
+msbuild Nemerle.Compiler.nproj
+msbuild Nemerle.Macros.nproj
+msbuild NCC.nproj
+msbuild Nemerle.MSBuild.Tasks.nproj
+copy ..\tools\msbuild-task\Nemerle.MSBuild.targets bin\Debug
Index: ncc/external/LibrariesLoader.n
===================================================================
--- ncc/external/LibrariesLoader.n	(revision 6158)
+++ ncc/external/LibrariesLoader.n	(working copy)
@@ -84,7 +84,17 @@
       }
     }
 
-  
+/*
+    public PrintStack(Format : string, params Params : array[object]) : void
+    {
+      System.Console.WriteLine(Format, Params);
+      def trace = System.Diagnostics.StackTrace(true);
+      for(mutable i=0; i<trace.FrameCount; ++i) {
+        def frame = trace.GetFrame(i);
+        System.Console.WriteLine("  {0}({1})", frame.GetMethod().Name, frame.GetFileLineNumber());
+      }
+    }
+*/
     /**
      * Stores the referenced library for later lookup by the namespaces. Also
      * add transitive closure of libraries needed by given assembly.
@@ -116,6 +126,8 @@
 
     public AddAssembly (assembly : SR.Assembly) : void
     {
+      //PrintStack("AddAssembly({0})", assembly.CodeBase);
+      Message.Debug($"AddAssembly($(assembly.CodeBase))");
       unless (_loaded_assemblies_by_name.Contains (assembly.FullName)) {
         _ = LibraryReference (assembly);
         _loaded_assemblies_by_name.Set (assembly.FullName, assembly);
@@ -125,9 +137,11 @@
           foreach (name : SR.AssemblyName in refs) {
             def asm =
               try {
+                Message.Debug($"AddAssembly($(assembly.CodeBase)) -> Load($name)");
                 SR.Assembly.Load (name)
               } catch { _ is FileNotFoundException => 
                 try {
+                  Message.Debug($"AddAssembly($(assembly.CodeBase)) -> LoadFrom($(name.CodeBase))");
                   SR.Assembly.LoadFrom (name.CodeBase)
                 } catch { _ is System.Exception => 
                   LookupAssembly (name.Name)
@@ -172,6 +186,8 @@
 
     private LookupAssembly (name : string) : SR.Assembly
     {
+      //PrintStack("LookupAssembly({0})", name);
+      Message.Debug($"LookupAssembly($name)");
       def assembly_by_name (path : string) {
         try {
           def ext = Path.GetExtension (path);
@@ -180,6 +196,7 @@
               | ".dll" | ".exe" => path
               | _ => path + ".dll" 
             }
+          Message.Debug($"LookupAssembly($name) -> LoadFrom($path)");
           SR.Assembly.LoadFrom (path)
         } catch {
           | _ is FileNotFoundException => null
@@ -193,6 +210,7 @@
 
         | x when x.IndexOf (',') != -1 =>
           try {
+            Message.Debug($"LookupAssembly($name) -> Load($x)");
             SR.Assembly.Load (x)
           }
           catch {
Index: ncc/NCC.nproj
===================================================================
--- ncc/NCC.nproj	(revision 0)
+++ ncc/NCC.nproj	(revision 0)
@@ -0,0 +1,37 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Exe</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>NCC</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Compile Include="main.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="bin/Debug/Nemerle.dll" />
+		<Reference Include="bin/Debug/Nemerle.Compiler.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.Compiler.nproj
===================================================================
--- ncc/Nemerle.Compiler.nproj	(revision 0)
+++ ncc/Nemerle.Compiler.nproj	(revision 0)
@@ -0,0 +1,242 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.Compiler</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="codedom" />
+		<Folder Include="external" />
+		<Folder Include="generation" />
+		<Folder Include="hierarchy" />
+		<Folder Include="misc" />
+		<Folder Include="parsing" />
+		<Folder Include="typing" />
+		<Folder Include="completion" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="CompilationOptions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeGenerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="codedom/NemerleCodeProvider.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/Codec.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/InternalTypes.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="external/LibrariesLoader.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/HierarchyEmitter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/ILEmitter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/ImplementsWrapperMaker.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/MatchingCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/DecisionTreeCompiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/Typer3.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="generation/Typer4.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ExtensionMethod.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/BuiltinMethod.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ClassMembers.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/CustomAttribute.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/DelegateClassGen.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/GlobalEnv.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/MacroClassGen.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/NamespaceTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/ScanTypeHierarchy.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypeBuilder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypeInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/TypesManager.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="hierarchy/XmlDump.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/PrettyPrint.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="misc/Stats.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/AST.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/Lexer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/MainParser-Extensions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/MainParser.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/ParseTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/PreParser.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/PreParserIndent.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="parsing/Utility.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="passes.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/ConstantFolder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/DecisionTreeBuilder.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/ErrorMessage.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/LocalContext.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/LocalValue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MType.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MacroColorizer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/MacroRegistry.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Macros.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Messenger.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/OverloadPossibility.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/RestartInErrorMode.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Solver.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/StaticTyVar.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Subst.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TyVar.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TyVarEnv.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/TypedTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-CallTyper.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-DelayedTyping.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-OverloadSelection.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer-PatternTyper.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="typing/Typer2.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CodeCompletionEngine.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CompletionEngineError.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="completion/CompletionEngineTree.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="System.Xml" />
+		<Reference Include="bin/Debug/Nemerle.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.Macros.nproj
===================================================================
--- ncc/Nemerle.Macros.nproj	(revision 0)
+++ ncc/Nemerle.Macros.nproj	(revision 0)
@@ -0,0 +1,92 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.Macros</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="../macros" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="../macros/Profiling.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/xml.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/text.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/io.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/core.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/compiler.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/assertions.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/operators.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/concurrency.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Util.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Nemerle.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Memoize.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Logging.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Internals.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/English.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/Data.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/DesignPatterns.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="../macros/AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="System.Xml" />
+		<Reference Include="bin\Debug\Nemerle.dll" />
+		<Reference Include="bin\Debug\Nemerle.Compiler.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.MSBuild.Tasks.nproj
===================================================================
--- ncc/Nemerle.MSBuild.Tasks.nproj	(revision 0)
+++ ncc/Nemerle.MSBuild.Tasks.nproj	(revision 0)
@@ -0,0 +1,40 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle.MSBuild.Tasks</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="../tools/msbuild-task" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="../tools/msbuild-task/MSBuildTask.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+		<Reference Include="bin\Debug\Nemerle.dll" />
+		<Reference Include="Microsoft.Build.Tasks.dll" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: ncc/Nemerle.nproj
===================================================================
--- ncc/Nemerle.nproj	(revision 0)
+++ ncc/Nemerle.nproj	(revision 0)
@@ -0,0 +1,122 @@
+ďťż<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+	<PropertyGroup>
+		<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+		<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+		<SchemaVersion>2.0</SchemaVersion>
+		<ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
+		<OutputType>Library</OutputType>
+		<RootNamespace>Application</RootNamespace>
+		<AssemblyName>Nemerle</AssemblyName>
+		<Name>Nemerle</Name>
+		<TargetPlatform>v2</TargetPlatform>
+		<DefineConstants>RUNTIME_MS</DefineConstants>
+		<DefineConstants>_stage3</DefineConstants>
+		<WarningLevel>4</WarningLevel>
+		<NoStdLib>true</NoStdLib>
+		<!--NoStdMacros>true</NoStdMacros-->
+		<GreedyReferences>false</GreedyReferences>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
+		<OutputPath>bin\Debug\</OutputPath>
+	</PropertyGroup>
+	<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
+		<OutputPath>bin\Release\</OutputPath>
+	</PropertyGroup>
+	<Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
+	<ItemGroup>
+		<Folder Include="..\lib" />
+	</ItemGroup>
+	<ItemGroup>
+		<Compile Include="..\lib\AssemblyInfo.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\concurrency.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\core.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\getopt.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\hashtable.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\heap.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\icloneable.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\icollection.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\idictionary.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\idictionaryenumerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\input.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\internal-numbered.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\internal.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\LazyValue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\linkedlist.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\list.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\listenumerator.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\macros.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\narray.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\nstring.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\oldapi.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\option.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\pair.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\PipeReader.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\PipeWriter.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\queue.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\set.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\stack.n">
+			<SubType>Code</SubType>
+		</Compile>
+		<Compile Include="..\lib\tree.n">
+			<SubType>Code</SubType>
+		</Compile>
+	</ItemGroup>
+	<ItemGroup>
+		<Reference Include="mscorlib" />
+		<Reference Include="System" />
+	</ItemGroup>
+</Project>
\ No newline at end of file
Index: tools/msbuild-task/MSBuildTask.n
===================================================================
--- tools/msbuild-task/MSBuildTask.n	(revision 6158)
+++ tools/msbuild-task/MSBuildTask.n	(working copy)
@@ -59,8 +59,12 @@
       commandLine.AppendSwitch ("/no-color");
       commandLine.AppendSwitchIfNotNull("/lib:", base.AdditionalLibPaths, ",");
       commandLine.AppendSwitchIfNotNull("/nowarn:", this.DisabledWarnings, ",");
-      when (NoStandardLib)
+      when (NoStdLib)
         commandLine.AppendSwitch("/no-stdlib");
+      when (NoStdMacros)
+        commandLine.AppendSwitch("/no-stdmacros");
+      when (!GreedyReferences)
+        commandLine.AppendSwitch("/greedy-references:-");
       when (WarningLevel != 4)
         commandLine.AppendSwitchIfNotNull("/warn:", WarningLevel.ToString());
       commandLine.AppendSwitchIfNotNull("/doc:", this.DocumentationFile);
@@ -101,7 +105,7 @@
           }
         }
       }
-    
+ 
       if (singleLine.IndexOf ("error:") != -1) {
         def (file, l1, c1, l2, c2) = get_location ("error:");
         Log.LogError (null, null, null, file, l1, c1, l2, c2, singleLine.Substring (singleLine.IndexOf ("error:") + 7));
@@ -129,12 +133,18 @@
     mutable _documentation_file : string;
 
     [Accessor (flags = WantSetter)]
-    mutable _no_standard_lib : bool = false;
+    mutable _no_std_lib : bool = false;
 
     [Accessor (flags = WantSetter)]
+    mutable _no_std_macros : bool = false;
+
+    [Accessor (flags = WantSetter)]
     mutable _warning_level : int = 4;
         
     [Accessor (flags = WantSetter)]
     mutable _warnings_as_errors : bool;
+        
+    [Accessor (flags = WantSetter)]
+    mutable _greedy_references : bool = true;
   }
 }
\ No newline at end of file
Index: tools/msbuild-task/Nemerle.MSBuild.targets
===================================================================
--- tools/msbuild-task/Nemerle.MSBuild.targets	(revision 6158)
+++ tools/msbuild-task/Nemerle.MSBuild.targets	(working copy)
@@ -172,7 +172,9 @@
               EmitDebugInformation="$(DebugSymbols)"              
               KeyFile="$(KeyOriginatorFile)"
               NoLogo="$(NoLogo)"
-              NoStandardLib="$(NoStandardLib)"              
+              NoStdLib="$(NoStdLib)"
+							NoStdMacros="$(NoStdMacros)"
+							GreedyReferences="$(GreedyReferences)"
               Optimize="$(Optimize)"
               OutputAssembly="@(IntermediateAssembly)"
               References="@(ReferencePath)"


More information about the devel-en mailing list