@echo off
cd mcs\jay
vcbuild jay.vcxproj
+cd msvc\scripts
+csc prepare.cs
+prepare.exe ..\..\mcs core
msbuild net_4_x.sln
#!/bin/sh
(cd mcs/jay; make)
-(cd msvc/scripts/; make prepare.exe; mono prepare.exe `pwd`/mcs core)
+(cd msvc/scripts/; make prepare.exe; mono prepare.exe ../../mcs core)
msbuild net_4_x.sln
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-$(ProjectDir)\..\..\jay\jay.exe -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.jay > $(ProjectDir)\Commons.Xml.Relaxng.Rnc\RncParser.cs
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
cp $* $@
$(RESX_RESOURCES): %.resources: %.resx
- $(RESGEN) $< || cp $@.prebuilt $@
+ $(RESGEN) -useSourcePath $< || cp $@.prebuilt $@
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="resources/SR.resx">\r
+ <EmbeddedResource Include="resources/SR.resources.prebuilt">\r
<LogicalName>SR.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/SQLiteCommand.bmp">\r
</resheader>\r
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />\r
<data name="DataTypes" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
- <value>resources/DataTypes.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
+ <value>DataTypes.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
</data>\r
<data name="Keywords" xml:space="preserve">\r
<value>ALL,ALTER,AND,AS,AUTOINCREMENT,BETWEEN,BY,CASE,CHECK,COLLATE,COMMIT,CONSTRAINT,CREATE,CROSS,DEFAULT,DEFERRABLE,DELETE,DISTINCT,DROP,ELSE,ESCAPE,EXCEPT,FOREIGN,FROM,FULL,GROUP,HAVING,IN,INDEX,INNER,INSERT,INTERSECT,INTO,IS,ISNULL,JOIN,LEFT,LIMIT,NATURAL,NOT,NOTNULL,NULL,ON,OR,ORDER,OUTER,PRIMARY,REFERENCES,RIGHT,ROLLBACK,SELECT,SET,TABLE,THEN,TO,TRANSACTION,UNION,UNIQUE,UPDATE,USING,VALUES,WHEN,WHERE</value>\r
</data>\r
<data name="MetaDataCollections" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
- <value>resources/MetaDataCollections.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
+ <value>MetaDataCollections.xml;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>\r
</data>\r
-</root>
\ No newline at end of file
+</root>\r
</PostBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
- RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
- RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
- RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $(ProjectDir)..\..\docs\specs\amqp0-9.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-9.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $(ProjectDir)..\..\docs\specs\amqp0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-0-8.cs
+mono RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $(ProjectDir)..\..\docs\specs\qpid-amqp.0-8.stripped.xml $(ProjectDir)..\..\docs\specs\net_4_x-api-qpid-0-8.cs
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Core.resx">\r
+ <EmbeddedResource Include="Strings_Core.resources.prebuilt">\r
<LogicalName>System.Reactive.Strings_Core.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Linq.resx">\r
+ <EmbeddedResource Include="Strings_Linq.resources.prebuilt">\r
<LogicalName>System.Reactive.Strings_Linq.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_PlatformServices.resx">\r
+ <EmbeddedResource Include="Strings_PlatformServices.resources.prebuilt">\r
<LogicalName>System.Reactive.Strings_PlatformServices.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_Providers.resx">\r
+ <EmbeddedResource Include="Strings_Providers.resources.prebuilt">\r
<LogicalName>System.Reactive.Strings_Providers.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
<Folder Include="Properties\" />\r
</ItemGroup>\r
<ItemGroup>\r
- <EmbeddedResource Include="Strings_WindowsThreading.resx">\r
+ <EmbeddedResource Include="Strings_WindowsThreading.resources.prebuilt">\r
<LogicalName>System.Reactive.Strings_WindowsThreading.resources</LogicalName>\r
</EmbeddedResource>\r
</ItemGroup>\r
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-\r
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
+
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
+
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
+
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+mono $(ProjectDir)\..\lib\net_4_x\culevel.exe -o $(ProjectDir)\System.Web\UplevelHelper.cs $(ProjectDir)\UplevelHelperDefinitions.xml
+
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
<EmbeddedResource Include="resources/DnDMove.cur">\r
<LogicalName>System.Windows.Forms.DnDMove.cur</LogicalName>\r
</EmbeddedResource>\r
- <EmbeddedResource Include="resources/keyboards.resx">\r
+ <EmbeddedResource Include="resources/keyboards.resources.prebuilt">\r
<LogicalName>keyboards.resources</LogicalName>\r
</EmbeddedResource>\r
<EmbeddedResource Include="resources/16_computer.png">\r
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS;CONFIGURATION_DEP</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
<DebugType>full</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>false</Optimize>\r
- <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+ <DefineConstants>TRACE;NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<DebugType>pdbonly</DebugType>\r
<NoWarn>1699,618</NoWarn>\r
<Optimize>true</Optimize>\r
- <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
+ <DefineConstants>NET_4_0;NET_4_5;NET_4_6;MONO;DISABLE_CAS_USE;CONFIGURATION_2_0;FEATURE_PAL;SYSTEM_NAMESPACE;MONO;PLATFORM_UNIX;MONO_FEATURE_PROCESS_START;MONO_FEATURE_THREAD_ABORT;MONO_FEATURE_THREAD_SUSPEND_RESUME;MONO_FEATURE_MULTIPLE_APPDOMAINS;SECURITY_DEP;XML_DEP;MONO_SECURITY_ALIAS</DefineConstants>\r
<ErrorReport>prompt</ErrorReport>\r
<WarningLevel>4</WarningLevel>\r
</PropertyGroup>\r
<Compile Include="..\referencesource\System\net\System\IriHelper.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_BufferOffsetSize.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_Connection.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_emptywebproxy.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HeaderInfoTable.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_HTTPDateParse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LazyAsyncResult.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_LoggingObject.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_NetRes.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_ProxyChain.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\_ScatterGatherBuffers.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_TimerThread.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\_WebProxyDataBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationScheme.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\AuthenticationSchemeSelector.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Authorization.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCache.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheEntry.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCacheManager.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\Cache\RequestCachePolicy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\Configuration\DefaultProxySection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookie.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookiecontainer.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\cookieexception.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\CredentialCache.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\DnsEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\EndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebrequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\filewebresponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\FtpStatusCode.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\GlobalProxySelection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerException.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpListenerRequestUriBuilder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\HttpRequestHeader.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPEndPoint.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IPHostEntry.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\iwebproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\IWebProxyFinder.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\IWebRequestCreate.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64Stream.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\mail\Base64WriteStateInfo.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebExceptionStatus.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebHeaderCollection.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebPermission.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\webproxy.cs" />\r
+ <Compile Include="..\referencesource\System\net\System\Net\WebRequest.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebRequestMethods.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebResponse.cs" />\r
<Compile Include="..\referencesource\System\net\System\Net\WebUtility.cs" />\r
<Compile Include="ReferenceSources\_SslState.cs" />\r
<Compile Include="ReferenceSources\_SslStream.cs" />\r
<Compile Include="ReferenceSources\AssertWrapper.cs" />\r
+ <Compile Include="ReferenceSources\AutoWebProxyScriptEngine.cs" />\r
<Compile Include="ReferenceSources\BinaryCompatibility.cs" />\r
<Compile Include="ReferenceSources\CAPI.cs" />\r
<Compile Include="ReferenceSources\ConfigurationManagerInternalFactory.cs" />\r
<Compile Include="ReferenceSources\Internal.cs" />\r
<Compile Include="ReferenceSources\Logging.cs" />\r
<Compile Include="ReferenceSources\NativeMethods.cs" />\r
+ <Compile Include="ReferenceSources\RequestCacheProtocol.cs" />\r
<Compile Include="ReferenceSources\SettingsSectionInternal.cs" />\r
<Compile Include="ReferenceSources\Socket.cs" />\r
<Compile Include="ReferenceSources\SR.cs" />\r
<Compile Include="ReferenceSources\SSPIConfiguration.cs" />\r
<Compile Include="ReferenceSources\SSPISafeHandles.cs" />\r
<Compile Include="ReferenceSources\SSPIWrapper.cs" />\r
- <Compile Include="ReferenceSources\SystemNetworkCredential.cs" />\r
<Compile Include="ReferenceSources\Win32Exception.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeCompiler.cs" />\r
<Compile Include="System.CodeDom.Compiler\CodeDomConfigurationHandler.cs" />\r
<Compile Include="System.Net\BindIPEndPoint.cs" />\r
<Compile Include="System.Net\ChunkedInputStream.cs" />\r
<Compile Include="System.Net\ChunkStream.cs" />\r
- <Compile Include="System.Net\CredentialCache.cs" />\r
<Compile Include="System.Net\DecompressionMethods.cs" />\r
<Compile Include="System.Net\DefaultCertificatePolicy.cs" />\r
<Compile Include="System.Net\DigestClient.cs" />\r
<Compile Include="System.Net\FtpStatus.cs" />\r
<Compile Include="System.Net\FtpWebRequest.cs" />\r
<Compile Include="System.Net\FtpWebResponse.cs" />\r
- <Compile Include="System.Net\GlobalProxySelection.cs" />\r
<Compile Include="System.Net\HttpConnection.cs" />\r
<Compile Include="System.Net\HttpListener.cs" />\r
<Compile Include="System.Net\HttpListenerBasicIdentity.cs" />\r
<Compile Include="System.Net\WebConnectionData.cs" />\r
<Compile Include="System.Net\WebConnectionGroup.cs" />\r
<Compile Include="System.Net\WebConnectionStream.cs" />\r
- <Compile Include="System.Net\WebProxy.cs" />\r
- <Compile Include="System.Net\WebRequest.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\ADVF.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DATADIR.cs" />\r
<Compile Include="System.Runtime.InteropServices.ComTypes\DVASPECT.cs" />\r
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.jay > $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.cs
+
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\..\jay\jay -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.jay > $(ProjectDir)\Monodoc.Ecma\EcmaUrlParser.cs\r
+\r
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+$(ProjectDir)\..\jay\jay -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
+$(ProjectDir)\..\jay\jay -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
//
// Uwrap delegate from Expression<T>
//
- q = TypeManager.GetTypeArguments (q)[0];
- p = TypeManager.GetTypeArguments (p)[0];
+ q = TypeManager.GetTypeArguments (q) [0];
+ p = TypeManager.GetTypeArguments (p) [0];
}
var p_m = Delegate.GetInvokeMethod (p);
// if p has a return type Y, and q is void returning, then C1 is the better conversion.
//
if (q.Kind == MemberKind.Void) {
- return p.Kind != MemberKind.Void ? 1: 0;
+ return p.Kind != MemberKind.Void ? 1 : 0;
}
- var am = (AnonymousMethodExpression) a.Expr;
+ var am = (AnonymousMethodExpression)a.Expr;
//
// When anonymous method is an asynchronous, and P has a return type Task<Y1>, and Q has a return type Task<Y2>
//
if (p.IsGenericTask || q.IsGenericTask) {
if (am.Block.IsAsync && p.IsGenericTask && q.IsGenericTask) {
- q = q.TypeArguments[0];
- p = p.TypeArguments[0];
+ q = q.TypeArguments [0];
+ p = p.TypeArguments [0];
}
}
if (argument_type == q)
return 2;
- //
- // The parameters are identicial and return type is not void, use better type conversion
- // on return type to determine better one
- //
- return BetterTypeConversion (ec, p, q);
+ return IsBetterConversionTarget (ec, p, q);
+ }
+
+ static int IsBetterConversionTarget (ResolveContext rc, TypeSpec p, TypeSpec q)
+ {
+ if ((p.Kind == MemberKind.Delegate || p.IsExpressionTreeType) && (q.Kind == MemberKind.Delegate || q.IsExpressionTreeType)) {
+
+ if (p.Kind != MemberKind.Delegate) {
+ p = TypeManager.GetTypeArguments (p) [0];
+ }
+
+ if (q.Kind != MemberKind.Delegate) {
+ q = TypeManager.GetTypeArguments (q) [0];
+ }
+
+ var p_m = Delegate.GetInvokeMethod (p);
+ var q_m = Delegate.GetInvokeMethod (q);
+
+ p = p_m.ReturnType;
+ q = q_m.ReturnType;
+
+ //
+ // if p is void returning, and q has a return type Y, then C2 is the better conversion.
+ //
+ if (p.Kind == MemberKind.Void) {
+ return q.Kind != MemberKind.Void ? 2 : 0;
+ }
+
+ //
+ // if p has a return type Y, and q is void returning, then C1 is the better conversion.
+ //
+ if (q.Kind == MemberKind.Void) {
+ return p.Kind != MemberKind.Void ? 1 : 0;
+ }
+
+ return IsBetterConversionTarget (rc, p, q);
+ }
+
+ if (p.IsGenericTask && q.IsGenericTask) {
+ q = q.TypeArguments [0];
+ p = p.TypeArguments [0];
+ return IsBetterConversionTarget (rc, p, q);
+ }
+
+ if (p.IsNullableType) {
+ p = Nullable.NullableInfo.GetUnderlyingType (p);
+ if (!BuiltinTypeSpec.IsPrimitiveType (p))
+ return 0;
+ }
+
+ if (q.IsNullableType) {
+ q = Nullable.NullableInfo.GetUnderlyingType (q);
+ if (!BuiltinTypeSpec.IsPrimitiveType (q))
+ return 0;
+ }
+
+ return BetterTypeConversion (rc, p, q);
}
//
return 1;
}
- // FIXME: handle lifted operators
-
// TODO: this is expensive
Expression p_tmp = new EmptyExpression (p);
Expression q_tmp = new EmptyExpression (q);
-->\r
<PropertyGroup>\r
<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
-$(ProjectDir)\..\jay\jay -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+$(ProjectDir)\..\jay\jay -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs
+
</PreBuildEvent>\r
<PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">\r
-$(ProjectDir)\..\jay\jay.exe -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+$(ProjectDir)\..\jay\jay -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+\r
\r
</PreBuildEvent>\r
<PostBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
--- /dev/null
+using System;
+using System.Threading.Tasks;
+using System.Linq.Expressions;
+
+public static class Program
+{
+ public delegate void DelegateVoid (int arg);
+ public delegate int DelegateInt (string arg);
+
+ public static int Main ()
+ {
+ Foo (Bar);
+
+ TT (null);
+ NN (0);
+ NN2 (1);
+ Complex (null);
+ return 0;
+ }
+
+ static void TT (Task<string> a)
+ {
+ }
+
+ static void TT (Task<object> b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ static void NN (sbyte a)
+ {
+ }
+
+ static void NN (uint? b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ static void NN2 (sbyte? a)
+ {
+ }
+
+ static void NN2 (uint? b)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ public static void Bar (int arg)
+ {
+ }
+
+ public static int Bar (string arg)
+ {
+ return 2;
+ }
+
+ public static void Foo (DelegateVoid input)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+
+ public static void Foo (DelegateInt input)
+ {
+ }
+
+ static void Complex (Expression<Func<Task<short>>> arg)
+ {
+ }
+
+ static void Complex (Expression<Func<Task<ulong>>> arg)
+ {
+ throw new ApplicationException ("wrong overload");
+ }
+}
\ No newline at end of file
</method>
</type>
</test>
+ <test name="test-935.cs">
+ <type name="Program">
+ <method name="Int32 Main()" attrs="150">
+ <size>73</size>
+ </method>
+ <method name="Void TT(System.Threading.Tasks.Task`1[System.String])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void TT(System.Threading.Tasks.Task`1[System.Object])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void NN(SByte)" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void NN(System.Nullable`1[System.UInt32])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void NN2(System.Nullable`1[System.SByte])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void NN2(System.Nullable`1[System.UInt32])" attrs="145">
+ <size>12</size>
+ </method>
+ <method name="Void Bar(Int32)" attrs="150">
+ <size>2</size>
+ </method>
+ <method name="Int32 Bar(System.String)" attrs="150">
+ <size>10</size>
+ </method>
+ <method name="Void Foo(DelegateVoid)" attrs="150">
+ <size>12</size>
+ </method>
+ <method name="Void Foo(DelegateInt)" attrs="150">
+ <size>2</size>
+ </method>
+ <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.Int16]]])" attrs="145">
+ <size>2</size>
+ </method>
+ <method name="Void Complex(System.Linq.Expressions.Expression`1[System.Func`1[System.Threading.Tasks.Task`1[System.UInt64]]])" attrs="145">
+ <size>12</size>
+ </method>
+ </type>
+ <type name="Program+DelegateVoid">
+ <method name="Void Invoke(Int32)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="System.IAsyncResult BeginInvoke(Int32, System.AsyncCallback, System.Object)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void EndInvoke(System.IAsyncResult)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+ <size>0</size>
+ </method>
+ </type>
+ <type name="Program+DelegateInt">
+ <method name="Int32 Invoke(System.String)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="System.IAsyncResult BeginInvoke(System.String, System.AsyncCallback, System.Object)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Int32 EndInvoke(System.IAsyncResult)" attrs="454">
+ <size>0</size>
+ </method>
+ <method name="Void .ctor(Object, IntPtr)" attrs="6278">
+ <size>0</size>
+ </method>
+ </type>
+ </test>
<test name="test-94.cs">
<type name="Base">
<method name="Int32 IVehicle.Start()" attrs="481">
LIB_REFS = System.Xml System
PROGRAM = mconfig.exe
-BUILT_SOURCES=Mono.MonoConfig/consts.cs
-
-Mono.MonoConfig/consts.cs: Mono.MonoConfig/consts.cs.in
- sed -e "s;@MONO_SYSCONFDIR@;$(sysconfdir);g" < $< > $@
-
install-local: install-local-data
install-local-data:
$(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)/mono/mconfig/
$(INSTALL_DATA) data/config.xml $(DESTDIR)$(sysconfdir)/mono/mconfig
-EXTRA_DISTFILES = TODO data/config.xml Mono.MonoConfig/consts.cs.in
+EXTRA_DISTFILES = TODO data/config.xml
include ../../build/executable.make
+++ /dev/null
-//
-// Authors:
-// Marek Habersack (mhabersack@novell.com)
-//
-// (C) 2007 Novell, Inc
-//
-
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-using System;
-using System.IO;
-
-namespace Mono.MonoConfig
-{
- public class Constants
- {
- public static readonly string GlobalConfigPath;
-
- static Constants ()
- {
- GlobalConfigPath = String.Format ("@MONO_SYSCONFDIR@{0}mono{0}mconfig{0}config.xml",
- Path.DirectorySeparatorChar);
- }
- }
-}
<Compile Include="Mono.MonoConfig\IDocumentNodeHandler.cs" />\r
<Compile Include="Mono.MonoConfig\IFeatureGenerator.cs" />\r
<Compile Include="Mono.MonoConfig\IStorageConsumer.cs" />\r
- <Compile Include="Mono.MonoConfig\Section.cs" />\r
- <Compile Include="Mono.MonoConfig\consts.cs" />\r </ItemGroup>\r
+ <Compile Include="Mono.MonoConfig\Section.cs" />\r </ItemGroup>\r
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
Other similar extension points exist, see Microsoft.Common.targets.\r
<Target Name="BeforeBuild">\r
class MConfig
{
static string[] configPaths = {
- Constants.GlobalConfigPath,
+ Path.GetFullPath (Path.Combine (Environment.CommandLine, "..", "..", "..","..", "etc", "mono", "mconfig", "config.xml")),
Path.Combine (ConfigPath, "config.xml"),
Path.Combine (".", "mconfig.xml"),
null
$(MAKE) Test/DocTest-DropNS-unified-multitest.dll
# mdoc update for both classic and unified
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
# now run it again to verify idempotency
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
diff --exclude=.svn -rup Test/en.expected-dropns-multi Test/en.actual
$(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual Test/DocTest-DropNS-unified.dll --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework
# mdoc update for both classic and unified
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic -multiassembly
- $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework -multiassembly
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-CLASSIC) --api-style=classic
+ $(MONO) $(PROGRAM) update --exceptions=all -o Test/en.actual $(MULTI-UNIFIED) --api-style=unified --dropns Test/DocTest-DropNS-unified.dll=MyFramework --dropns Test/DocTest-DropNS-unified-multitest.dll=MyFramework
diff --exclude=.svn -rup Test/en.expected-dropns-multi-withexisting Test/en.actual
string apistyle = string.Empty;
bool isClassicRun;
- bool multiassembly;
+
bool delete;
bool show_exceptions;
bool no_assembly_versions, ignore_missing_types;
{
return !string.IsNullOrWhiteSpace (droppedNamespace);
}
-
+
+ /// <summary>Logic flag to signify that we should list assemblies at the method level, since there are multiple
+ /// assemblies for a given type/method.</summary>
+ public bool IsMultiAssembly {
+ get {
+ return apistyle == "classic" || apistyle == "unified";
+ }
+ }
static List<string> droppedAssemblies = new List<string>();
{ "preserve",
"Do not delete members that don't exist in the assembly, but rather mark them as preserved.",
v => PreserveTag = "true" },
- { "multiassembly",
- "Allow types to be in multiple assemblies.",
- v => multiassembly = true },
{ "api-style=",
"Denotes the apistyle. Currently, only `classic` and `unified` are supported. `classic` set of assemblies should be run first, immediately followed by 'unified' assemblies with the `dropns` parameter.",
- v => apistyle = v.ToLowerInvariant ()},
+ v => { apistyle = v.ToLowerInvariant (); }},
};
var assemblies = Parse (p, args, "update",
"[OPTIONS]+ ASSEMBLIES",
private void AddIndexAssembly (AssemblyDefinition assembly, XmlElement parent)
{
XmlElement index_assembly = null;
- if (multiassembly)
+ if (IsMultiAssembly)
index_assembly = (XmlElement)parent.SelectSingleNode ("Assembly[@Name='"+ assembly.Name.Name +"']");
if (index_assembly == null)
XmlElement index_types = WriteElement(index.DocumentElement, "Types");
XmlElement index_assemblies = WriteElement(index.DocumentElement, "Assemblies");
- if (!multiassembly)
+ if (!IsMultiAssembly)
index_assemblies.RemoveAll ();
WriteElementText(me, "MemberType", GetMemberType(mi));
if (!no_assembly_versions) {
- if (!multiassembly)
+ if (!IsMultiAssembly)
UpdateAssemblyVersions (me, mi, true);
else {
var node = AddAssemblyNameToNode (me, mi.Module);
member.AppendChild (link);
AddTargets (em, info);
- extensionMethods.Add (em);
+ var sig = em.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value");
+ if (!IsMultiAssembly || (IsMultiAssembly && sig != null && !extensionMethods.Any (ex => ex.SelectSingleNode ("Member/MemberSignature[@Language='C#']/@Value").Value == sig.Value))) {
+ extensionMethods.Add (em);
+ }
}
private static void RemoveExcept (XmlNode node, string[] except)
private bool UpdateAssemblyVersions(XmlElement root, AssemblyDefinition assembly, string[] assemblyVersions, bool add)
{
- if (multiassembly)
+ if (IsMultiAssembly)
return false;
XmlElement av = (XmlElement) root.SelectSingleNode ("AssemblyVersions");
public string WillDeleteInV2Classic {get;set;}
#endif
}
+ public static class MyClassExtensions {
+ public static bool AnExtension (this MyClass value) { return false; }
+ }
#if DELETETEST
public class TypeOnlyInClassic {}
#endif
}
+ public static class MyClassExtensions {
+ public static bool AnExtension (this MyClass value) { return false; }
+ }
#if DELETETEST
public struct nint {
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<remarks>To be added.</remarks>
</Docs>
<Members>
- <Member MemberName=".ctor">
+ <Member MemberName=".ctor" apistyle="classic">
<MemberSignature Language="C#" Value="public MyOtherClass ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<remarks>To be added.</remarks>
</Docs>
</Member>
- <Member MemberName="Hello">
+ <Member MemberName="Hello" apistyle="classic">
<MemberSignature Language="C#" Value="public float Hello (int value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<remarks>To be added.</remarks>
</Docs>
</Member>
- <Member MemberName="MyProperty">
+ <Member MemberName="MyProperty" apistyle="classic">
<MemberSignature Language="C#" Value="public string MyProperty { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-secondary</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
</Namespace>
<Namespace Name="MyFramework.MyOtherNamespace">
<Type Name="MyOtherClass" Kind="Class" />
</Namespace>
</Types>
<Title>Untitled</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Classic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string AddedInV2Unified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBoth" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBothClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance valuetype MyFramework.MyNamespace.nint InBothMagicType" apistyle="unified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string InBothUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<remarks>To be added.</remarks>
</Docs>
<Members>
- <Member MemberName=".ctor">
+ <Member MemberName=".ctor" apistyle="classic">
<MemberSignature Language="C#" Value="public TypeOnlyInClassic ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
- <AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Type Name="WillDelete" FullName="MyFramework.MyNamespace.WillDelete">
<TypeSignature Language="C#" Value="public class WillDelete" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit WillDelete extends System.Object" />
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<MemberSignature Language="ILAsm" Value=".property instance string Name" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-deletetest</AssemblyName>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<Overview>
<Assemblies>
+ <Assembly Name="DocTest-DropNS-classic-deletetest" Version="0.0.0.0">
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute+DebuggingModes.IgnoreSymbolStoreSequencePoints)</AttributeName>
+ </Attribute>
+ <Attribute>
+ <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+ </Attribute>
+ </Attributes>
+ </Assembly>
<Assembly Name="DocTest-DropNS-unified-deletetest" Version="0.0.0.0">
<Attributes>
<Attribute>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="nint" Kind="Structure" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic-deletetest</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance float32 Hello(int32 value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance string MyProperty" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance float64 OnlyInClassic" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="classic">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="classic">
<AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
<MemberSignature Language="ILAsm" Value=".property instance char OnlyInUnified" />
<MemberType>Property</MemberType>
<AssemblyInfo apistyle="unified">
- <AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo apistyle="unified">
<AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="OnlyInMulti" Kind="Class" />
</Namespace>
</Types>
<Title>DocTest-DropNS-classic</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
--- /dev/null
+<Type Name="MyClassExtensions" FullName="MyFramework.MyNamespace.MyClassExtensions">
+ <TypeSignature Language="C#" Value="public static class MyClassExtensions" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit MyClassExtensions extends System.Object" />
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Object</BaseTypeName>
+ </Base>
+ <Interfaces />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="classic">
+ <AssemblyName>DocTest-DropNS-classic-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <AssemblyInfo apistyle="unified">
+ <AssemblyName>DocTest-DropNS-unified-multitest</AssemblyName>
+ <AssemblyVersion>0.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ <returns>To be added.</returns>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
<Types>
<Namespace Name="MyFramework.MyNamespace">
<Type Name="MyClass" Kind="Class" />
+ <Type Name="MyClassExtensions" Kind="Class" />
<Type Name="OnlyInMulti" Kind="Class" />
</Namespace>
</Types>
<Title>Untitled</Title>
+ <ExtensionMethods>
+ <ExtensionMethod>
+ <Targets>
+ <Target Type="T:MyFramework.MyNamespace.MyClass" />
+ </Targets>
+ <Member MemberName="AnExtension">
+ <MemberSignature Language="C#" Value="public static bool AnExtension (this MyFramework.MyNamespace.MyClass value);" />
+ <MemberSignature Language="ILAsm" Value=".method public static hidebysig bool AnExtension(class MyFramework.MyNamespace.MyClass value) cil managed" />
+ <MemberType>ExtensionMethod</MemberType>
+ <ReturnValue>
+ <ReturnType>System.Boolean</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="value" Type="MyFramework.MyNamespace.MyClass" RefType="this" />
+ </Parameters>
+ <Docs>
+ <param name="value">To be added.</param>
+ <summary>To be added.</summary>
+ </Docs>
+ <Link Type="MyFramework.MyNamespace.MyClassExtensions" Member="M:MyFramework.MyNamespace.MyClassExtensions.AnExtension(MyFramework.MyNamespace.MyClass)" />
+ </Member>
+ </ExtensionMethod>
+ </ExtensionMethods>
</Overview>
{
}
+static void G_GNUC_UNUSED
+sgen_client_binary_protocol_pin_stats (int objects_pinned_in_nursery, size_t bytes_pinned_in_nursery, int objects_pinned_in_major, size_t bytes_pinned_in_major)
+{
+}
+
int sgen_thread_handshake (BOOL suspend);
gboolean sgen_suspend_thread (SgenThreadInfo *info);
gboolean sgen_resume_thread (SgenThreadInfo *info);
major_collector.iterate_objects (ITERATE_OBJECTS_SWEEP_PINNED, (IterateObjectCallbackFunc)clear_domain_free_major_pinned_object_callback, domain);
if (domain == mono_get_root_domain ()) {
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
sgen_object_layout_dump (stdout);
}
sgen_card_table_clear_cards (void)
{
/*XXX we could do this in 2 ways. using mincore or iterating over all sections/los objects */
- sgen_major_collector_iterate_live_block_ranges (clear_cards);
+ sgen_major_collector_iterate_block_ranges (clear_cards);
sgen_los_iterate_live_block_ranges (clear_cards);
}
#ifdef SGEN_HAVE_OVERLAPPING_CARDS
/*FIXME we should have a bit on each block/los object telling if the object have marked cards.*/
/*First we copy*/
- sgen_major_collector_iterate_live_block_ranges (move_cards_to_shadow_table);
+ sgen_major_collector_iterate_block_ranges (move_cards_to_shadow_table);
sgen_los_iterate_live_block_ranges (move_cards_to_shadow_table);
/*Then we clear*/
pin_object (obj_to_pin);
GRAY_OBJECT_ENQUEUE (queue, obj_to_pin, desc);
- sgen_pin_stats_register_object (obj_to_pin, obj_to_pin_size);
+ sgen_pin_stats_register_object (obj_to_pin, GENERATION_NURSERY);
definitely_pinned [count] = obj_to_pin;
count++;
}
void
sgen_pin_object (GCObject *object, GrayQueue *queue)
{
+ SGEN_ASSERT (0, sgen_ptr_in_nursery (object), "We're only supposed to use this for pinning nursery objects when out of memory.");
+
/*
* All pinned objects are assumed to have been staged, so we need to stage as well.
* Also, the count of staged objects shows that "late pinning" happened.
binary_protocol_pin (object, (gpointer)LOAD_VTABLE (object), safe_object_get_size (object));
++objects_pinned;
- sgen_pin_stats_register_object (object, safe_object_get_size (object));
+ sgen_pin_stats_register_object (object, GENERATION_NURSERY);
GRAY_OBJECT_ENQUEUE (queue, object, sgen_obj_get_descriptor_safe (object));
}
time_minor_scan_remsets += TV_ELAPSED (atv, btv);
SGEN_LOG (2, "Old generation scan: %lld usecs", (long long)TV_ELAPSED (atv, btv));
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
/* FIXME: Why do we do this at this specific, seemingly random, point? */
sgen_client_collecting_minor (&fin_ready_queue, &critical_fin_queue);
sgen_los_pin_object (bigobj->data);
if (SGEN_OBJECT_HAS_REFERENCES (bigobj->data))
GRAY_OBJECT_ENQUEUE (WORKERS_DISTRIBUTE_GRAY_QUEUE, bigobj->data, sgen_obj_get_descriptor ((GCObject*)bigobj->data));
- sgen_pin_stats_register_object (bigobj->data, safe_object_get_size (bigobj->data));
+ sgen_pin_stats_register_object (bigobj->data, GENERATION_OLD);
SGEN_LOG (6, "Marked large object %p (%s) size: %lu from roots", bigobj->data,
sgen_client_vtable_get_name (SGEN_LOAD_VTABLE (bigobj->data)),
(unsigned long)sgen_los_object_size (bigobj));
time_major_scan_mod_union += TV_ELAPSED (btv, atv);
}
- sgen_pin_stats_print_class_stats ();
+ sgen_pin_stats_report ();
}
static void
major_collector.iterate_live_block_ranges (callback);
}
+void
+sgen_major_collector_iterate_block_ranges (sgen_cardtable_block_callback callback)
+{
+ major_collector.iterate_block_ranges (callback);
+}
+
SgenMajorCollector*
sgen_get_major_collector (void)
{
void sgen_free_internal_dynamic (void *addr, size_t size, int type);
void sgen_pin_stats_enable (void);
-void sgen_pin_stats_register_object (GCObject *obj, size_t size);
+void sgen_pin_stats_register_object (GCObject *obj, int generation);
void sgen_pin_stats_register_global_remset (GCObject *obj);
-void sgen_pin_stats_print_class_stats (void);
+void sgen_pin_stats_report (void);
void sgen_sort_addresses (void **array, size_t size);
void sgen_add_to_global_remset (gpointer ptr, GCObject *obj);
typedef void (*sgen_cardtable_block_callback) (mword start, mword size);
void sgen_major_collector_iterate_live_block_ranges (sgen_cardtable_block_callback callback);
+void sgen_major_collector_iterate_block_ranges (sgen_cardtable_block_callback callback);
typedef enum {
ITERATE_OBJECTS_SWEEP = 1,
void (*pin_major_object) (GCObject *obj, SgenGrayQueue *queue);
void (*scan_card_table) (CardTableScanType scan_type, ScanCopyContext ctx);
void (*iterate_live_block_ranges) (sgen_cardtable_block_callback callback);
+ void (*iterate_block_ranges) (sgen_cardtable_block_callback callback);
void (*update_cardtable_mod_union) (void);
void (*init_to_space) (void);
void (*sweep) (void);
MS_CALC_MARK_BIT (word, bit, obj);
SGEN_ASSERT (9, !MS_MARK_BIT (block, word, bit), "object %p already marked", obj);
MS_SET_MARK_BIT (block, word, bit);
- binary_protocol_mark (obj, (gpointer)LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
+ binary_protocol_mark (obj, (gpointer)SGEN_LOAD_VTABLE (obj), sgen_safe_object_get_size (obj));
return FALSE;
#endif
static void *empty_blocks = NULL;
static size_t num_empty_blocks = 0;
+/*
+ * We can iterate the block list also while sweep is in progress but we
+ * need to account for blocks that will be checked for sweeping and even
+ * freed in the process.
+ */
#define FOREACH_BLOCK_NO_LOCK(bl) { \
volatile gpointer *slot; \
- SGEN_ASSERT (0, !sweep_in_progress (), "Can't iterate blocks while sweep is in progress."); \
SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) { \
- (bl) = BLOCK_UNTAG (*slot);
+ (bl) = BLOCK_UNTAG (*slot); \
+ if (!(bl)) \
+ continue;
#define FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK(bl,hr) { \
volatile gpointer *slot; \
- SGEN_ASSERT (0, !sweep_in_progress (), "Can't iterate blocks while sweep is in progress."); \
SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) { \
(bl) = (MSBlockInfo *) (*slot); \
+ if (!(bl)) \
+ continue; \
(hr) = BLOCK_IS_TAGGED_HAS_REFERENCES ((bl)); \
(bl) = BLOCK_UNTAG ((bl));
#define END_FOREACH_BLOCK_NO_LOCK } SGEN_ARRAY_LIST_END_FOREACH_SLOT; }
add_free_block (free_blocks, size_index, info);
- /*
- * Adding to the allocated_blocks array is racy with the removal of nulls when
- * sweeping. We wait for sweep to finish to avoid that.
- *
- * The memory barrier here and in `sweep_job_func()` are required because we need
- * `allocated_blocks` synchronized between this and the sweep thread.
- */
- major_finish_sweep_checking ();
- mono_memory_barrier ();
-
sgen_array_list_add (&allocated_blocks, BLOCK_TAG (info), 0, FALSE);
SGEN_ATOMIC_ADD_P (num_major_sections, 1);
return FALSE;
}
-#define LOAD_VTABLE SGEN_LOAD_VTABLE
-
-#define MS_MARK_OBJECT_AND_ENQUEUE_CHECKED(obj,desc,block,queue) do { \
- int __word, __bit; \
- MS_CALC_MARK_BIT (__word, __bit, (obj)); \
- if (!MS_MARK_BIT ((block), __word, __bit) && MS_OBJ_ALLOCED ((obj), (block))) { \
- MS_SET_MARK_BIT ((block), __word, __bit); \
- if (sgen_gc_descr_has_references (desc)) \
- GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
- binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
- INC_NUM_MAJOR_OBJECTS_MARKED (); \
- } \
- } while (0)
#define MS_MARK_OBJECT_AND_ENQUEUE(obj,desc,block,queue) do { \
int __word, __bit; \
MS_CALC_MARK_BIT (__word, __bit, (obj)); \
MS_SET_MARK_BIT ((block), __word, __bit); \
if (sgen_gc_descr_has_references (desc)) \
GRAY_OBJECT_ENQUEUE ((queue), (obj), (desc)); \
- binary_protocol_mark ((obj), (gpointer)LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
+ binary_protocol_mark ((obj), (gpointer)SGEN_LOAD_VTABLE ((obj)), sgen_safe_object_get_size ((obj))); \
INC_NUM_MAJOR_OBJECTS_MARKED (); \
} \
} while (0)
if (first_entry == last_entry)
return;
- block->has_pinned = TRUE;
-
entry = sgen_pinning_get_entry (first_entry);
end = sgen_pinning_get_entry (last_entry);
if (index == last_index)
continue;
obj = MS_BLOCK_OBJ (block, index);
- MS_MARK_OBJECT_AND_ENQUEUE_CHECKED (obj, sgen_obj_get_descriptor (obj), block, queue);
+ if (!MS_OBJ_ALLOCED (obj, block))
+ continue;
+ MS_MARK_OBJECT_AND_ENQUEUE (obj, sgen_obj_get_descriptor (obj), block, queue);
+ sgen_pin_stats_register_object (obj, GENERATION_OLD);
last_index = index;
}
+
+ /*
+ * There might have been potential pinning "pointers" into this block, but none of
+ * them pointed to occupied slots, in which case we don't have to pin the block.
+ */
+ if (last_index >= 0)
+ block->has_pinned = TRUE;
}
static inline void
{
SGEN_ASSERT (6, block->state == expected_state, "Block state incorrect before set");
block->state = new_state;
+ binary_protocol_block_set_state (block, MS_BLOCK_SIZE, expected_state, new_state);
}
/*
for (j = 0; j < num_block_obj_sizes; ++j)
free_blocks [j] = NULL;
}
+
+ sgen_array_list_remove_nulls (&allocated_blocks);
}
static void sweep_finish (void);
sweep_blocks_job_func (void *thread_data_untyped, SgenThreadPoolJob *job)
{
volatile gpointer *slot;
+ MSBlockInfo *bl;
SGEN_ARRAY_LIST_FOREACH_SLOT (&allocated_blocks, slot) {
- sweep_block (BLOCK_UNTAG (*slot));
+ bl = BLOCK_UNTAG (*slot);
+ if (bl)
+ sweep_block (bl);
} SGEN_ARRAY_LIST_END_FOREACH_SLOT;
mono_memory_write_barrier ();
}
}
- sgen_array_list_remove_nulls (&allocated_blocks);
-
/*
* Concurrently sweep all the blocks to reduce workload during minor
* pauses where we need certain blocks to be swept. At the start of
static void
count_nonpinned_callback (GCObject *obj, size_t size, void *data)
{
- GCVTable vtable = LOAD_VTABLE (obj);
+ GCVTable vtable = SGEN_LOAD_VTABLE (obj);
if (SGEN_VTABLE_HAS_REFERENCES (vtable))
++count_nonpinned_ref;
static void
count_pinned_callback (GCObject *obj, size_t size, void *data)
{
- GCVTable vtable = LOAD_VTABLE (obj);
+ GCVTable vtable = SGEN_LOAD_VTABLE (obj);
if (SGEN_VTABLE_HAS_REFERENCES (vtable))
++count_pinned_ref;
/*
* This callback is used to clear cards, move cards to the shadow table and do counting.
*/
+static void
+major_iterate_block_ranges (sgen_cardtable_block_callback callback)
+{
+ MSBlockInfo *block;
+ gboolean has_references;
+
+ FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK (block, has_references) {
+ if (has_references)
+ callback ((mword)MS_BLOCK_FOR_BLOCK_INFO (block), MS_BLOCK_SIZE);
+ } END_FOREACH_BLOCK_NO_LOCK;
+}
+
static void
major_iterate_live_block_ranges (sgen_cardtable_block_callback callback)
{
major_scan_card_table (CardTableScanType scan_type, ScanCopyContext ctx)
{
MSBlockInfo *block;
- gboolean has_references;
+ gboolean has_references, was_sweeping, skip_scan;
if (!concurrent_mark)
g_assert (scan_type == CARDTABLE_SCAN_GLOBAL);
- major_finish_sweep_checking ();
+ if (scan_type != CARDTABLE_SCAN_GLOBAL)
+ SGEN_ASSERT (0, !sweep_in_progress (), "Sweep should be finished when we scan mod union card table");
+ was_sweeping = sweep_in_progress ();
+
binary_protocol_major_card_table_scan_start (sgen_timestamp (), scan_type & CARDTABLE_SCAN_MOD_UNION);
FOREACH_BLOCK_HAS_REFERENCES_NO_LOCK (block, has_references) {
#ifdef PREFETCH_CARDS
if (!has_references)
continue;
+ skip_scan = FALSE;
- scan_card_table_for_block (block, scan_type, ctx);
+ if (scan_type == CARDTABLE_SCAN_GLOBAL) {
+ gpointer *card_start = (gpointer*) sgen_card_table_get_card_scan_address ((mword)MS_BLOCK_FOR_BLOCK_INFO (block));
+ gboolean has_dirty_cards = FALSE;
+ int i;
+ for (i = 0; i < CARDS_PER_BLOCK / sizeof(gpointer); i++) {
+ if (card_start [i]) {
+ has_dirty_cards = TRUE;
+ break;
+ }
+ }
+ if (!has_dirty_cards) {
+ skip_scan = TRUE;
+ } else {
+ /*
+ * After the start of the concurrent collections, blocks change state
+ * to marking. We should not sweep it in that case. We can't race with
+ * sweep start since we are in a nursery collection. Also avoid CAS-ing
+ */
+ if (sweep_in_progress ()) {
+ skip_scan = !ensure_block_is_checked_for_sweeping (__index, TRUE, NULL);
+ } else if (was_sweeping) {
+ /* Recheck in case sweep finished after dereferencing the slot */
+ skip_scan = *sgen_array_list_get_slot (&allocated_blocks, __index) == 0;
+ }
+ }
+ }
+ if (!skip_scan)
+ scan_card_table_for_block (block, scan_type, ctx);
} END_FOREACH_BLOCK_NO_LOCK;
binary_protocol_major_card_table_scan_end (sgen_timestamp (), scan_type & CARDTABLE_SCAN_MOD_UNION);
}
collector->pin_major_object = pin_major_object;
collector->scan_card_table = major_scan_card_table;
collector->iterate_live_block_ranges = major_iterate_live_block_ranges;
+ collector->iterate_block_ranges = major_iterate_block_ranges;
if (is_concurrent) {
collector->update_cardtable_mod_union = update_cardtable_mod_union;
collector->get_cardtable_mod_union_for_reference = major_get_cardtable_mod_union_for_reference;
static PinStatAddress *pin_stat_addresses = NULL;
static size_t pinned_byte_counts [PIN_TYPE_MAX];
+static size_t pinned_bytes_in_generation [GENERATION_MAX];
+static int pinned_objects_in_generation [GENERATION_MAX];
+
static SgenPointerQueue pinned_objects = SGEN_POINTER_QUEUE_INIT (INTERNAL_MEM_STATISTICS);
static SgenHashTable pinned_class_hash_table = SGEN_HASH_TABLE_INIT (INTERNAL_MEM_STATISTICS, INTERNAL_MEM_STAT_PINNED_CLASS, sizeof (PinnedClassEntry), g_str_hash, g_str_equal);
pin_stat_addresses = NULL;
for (i = 0; i < PIN_TYPE_MAX; ++i)
pinned_byte_counts [i] = 0;
+ for (i = 0; i < GENERATION_MAX; ++i) {
+ pinned_bytes_in_generation [i] = 0;
+ pinned_objects_in_generation [i] = 0;
+ }
sgen_pointer_queue_clear (&pinned_objects);
sgen_hash_table_clean (&pinned_class_hash_table);
sgen_hash_table_clean (&global_remset_class_hash_table);
PinStatAddress *node;
int pin_type_bit = 1 << pin_type;
+ if (!do_pin_stats)
+ return;
while (*node_ptr) {
node = *node_ptr;
if (addr == node->addr) {
}
void
-sgen_pin_stats_register_object (GCObject *obj, size_t size)
+sgen_pin_stats_register_object (GCObject *obj, int generation)
{
int pin_types = 0;
+ size_t size = 0;
+
+ if (binary_protocol_is_enabled ()) {
+ size = sgen_safe_object_get_size (obj);
+ pinned_bytes_in_generation [generation] += size;
+ ++pinned_objects_in_generation [generation];
+ }
if (!do_pin_stats)
return;
+ if (!size)
+ size = sgen_safe_object_get_size (obj);
+
pin_stats_count_object_from_tree (obj, size, pin_stat_addresses, &pin_types);
sgen_pointer_queue_add (&pinned_objects, obj);
}
void
-sgen_pin_stats_print_class_stats (void)
+sgen_pin_stats_report (void)
{
char *name;
PinnedClassEntry *pinned_entry;
GlobalRemsetClassEntry *remset_entry;
+ binary_protocol_pin_stats (pinned_objects_in_generation [GENERATION_NURSERY], pinned_bytes_in_generation [GENERATION_NURSERY],
+ pinned_objects_in_generation [GENERATION_OLD], pinned_bytes_in_generation [GENERATION_OLD]);
+
if (!do_pin_stats)
return;
IS_VTABLE_MATCH (FALSE)
END_PROTOCOL_ENTRY_FLUSH
+BEGIN_PROTOCOL_ENTRY4 (binary_protocol_pin_stats, TYPE_INT, objects_pinned_in_nursery, TYPE_SIZE, bytes_pinned_in_nursery, TYPE_INT, objects_pinned_in_major, TYPE_SIZE, bytes_pinned_in_major)
+DEFAULT_PRINT ()
+IS_ALWAYS_MATCH (TRUE)
+MATCH_INDEX (BINARY_PROTOCOL_MATCH)
+IS_VTABLE_MATCH (FALSE)
+END_PROTOCOL_ENTRY
+
#undef BEGIN_PROTOCOL_ENTRY0
#undef BEGIN_PROTOCOL_ENTRY1
#undef BEGIN_PROTOCOL_ENTRY2
--- /dev/null
+$(ProjectDir)\..\..\jay\jay.exe -ct < $(ProjectDir)\..\..\jay\skeleton.cs $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.jay > $(ProjectDir)\Microsoft.Build.Internal\ExpressionParser.cs
--- /dev/null
+resgen $(ProjectDir)\src\ComponentModel\Strings.resx $(ProjectDir)\Microsoft.Internal.Strings.resx
\ No newline at end of file
--- /dev/null
+resgen $(ProjectDir)\Client\System.Data.Services.Client.txt $(ProjectDir)\Client\System.Data.Services.Client.resx
\ No newline at end of file
--- /dev/null
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\CommonResources.resx $(ProjectDir)\System.Web.Razor.Common.CommonResources.resx
+resgen $(ProjectDir)\..\..\..\external\aspnetwebstack\src\System.Web.Razor\Resources\RazorResources.resx $(ProjectDir)\System.Web.Razor.Resources.RazorResources.resx
\ No newline at end of file
--- /dev/null
+These are the tasks that are pending in the MSVC scripts to fully roll it out:
+
+[ ] Validate that all generated assemblies are identical
+[ ] Add support for listing CLEAN_FILES in the `csproj` file
+[ ] Adding an "install" target
+[ ] On Windows- have a solution that builds both runtime and libraries all in one
+[ ] Add the other profiles (mobile, iOS, etc)
+[ ] Generate the dependency files
+[ ] Eliminate the need for "build-libs.sh/build-libs.bat" at the toplevel with proper MSBuild idioms
+[ ] Integrate the "update-solution-files" with each build, so we auto-update the files on commits
+[ ] Make it work with MSBuild instead of xbuild
var source = dk.Key;
if (source.EndsWith (".resources"))
source = source.Replace (".resources", ".resx");
+
+ // try to find a pre-built resource, and use that instead of trying to build it
+ if (source.EndsWith (".resx")) {
+ var probe_prebuilt = Path.Combine (base_dir, source.Replace (".resx", ".resources.prebuilt"));
+ if (File.Exists (probe_prebuilt)) {
+
+ source = GetRelativePath (base_dir + "/", probe_prebuilt);
+ }
+ }
resources.AppendFormat (" <EmbeddedResource Include=\"{0}\">" + NewLine, source);
resources.AppendFormat (" <LogicalName>{0}</LogicalName>" + NewLine, dk.Value);
resources.AppendFormat (" </EmbeddedResource>" + NewLine);
int q = library.IndexOf ("-");
if (q != -1)
target = target + Load (library.Substring (0, q) + suffix);
-
+
if (target.IndexOf ("@MONO@") != -1){
target_unix = target.Replace ("@MONO@", "mono").Replace ("@CAT@", "cat");
target_windows = target.Replace ("@MONO@", "").Replace ("@CAT@", "type");
target_unix = target.Replace ("jay.exe", "jay");
target_windows = target;
}
+ target_unix = target_unix.Replace ("@COPY@", "cp");
+ target_windows = target_unix.Replace ("@COPY@", "copy");
+
+ target_unix = target_unix.Replace ("\r", "");
const string condition_unix = "Condition=\" '$(OS)' != 'Windows_NT' \"";
const string condition_windows = "Condition=\" '$(OS)' == 'Windows_NT' \"";
var result =
--- /dev/null
+$(ProjectDir)\..\jay\jay.exe -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\parser\ILParser.jay > $(ProjectDir)\ILParser.cs
+
$(ProjectDir)\..\jay\jay.exe -ct < $(ProjectDir)\..\jay\skeleton.cs $(ProjectDir)\cs-parser.jay > $(ProjectDir)\cs-parser.cs\r
+\r
</project>
<project dir="class/System" library="System-basic">
<boot>true</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:BOOTSTRAP_BASIC -nowarn:1699 -d:DISABLE_CAS_USE -lib:./../../class/lib/basic -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/basic/System.Xml.dll -r:./../../class/lib/basic/System.Configuration.dll -r:MonoSecurity=./../../class/lib/basic/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/basic/System.dll</library_output>
</project>
<project dir="class/System" library="System-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/build/System.Xml.dll -r:./../../class/lib/build/System.Configuration.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/System.dll</library_output>
</project>
<project dir="class/System" library="System-bare-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/bare/System.dll</library_output>
</project>
<project dir="class/System" library="System-secxml-build">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/build/mscorlib.dll -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/build/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/build/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/build/secxml/System.dll</library_output>
</project>
<project dir="class/System" library="System-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -d:CONFIGURATION_DEP -r:./../../class/lib/net_4_x/System.Xml.dll -r:./../../class/lib/net_4_x/System.Configuration.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
</project>
<project dir="class/System" library="System-bare-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/bare/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
</project>
<project dir="class/System" library="System-secxml-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -nowarn:618 -d:CONFIGURATION_2_0 -d:FEATURE_PAL,SYSTEM_NAMESPACE,MONO,PLATFORM_UNIX -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS -unsafe -resource:resources/Asterisk.wav -resource:resources/Beep.wav -resource:resources/Exclamation.wav -resource:resources/Hand.wav -resource:resources/Question.wav -d:SECURITY_DEP -d:XML_DEP -d:MONO_SECURITY_ALIAS -r:./../../class/lib/net_4_x/bare/System.Xml.dll -r:MonoSecurity=./../../class/lib/net_4_x/Mono.Security.dll</flags>
<output>System.dll</output>
<built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/secxml/System.dll</library_output>
</project>
<project dir="class/System" library="System-tests-net_4_x">
<boot>false</boot>
- <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME</flags>
+ <flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize -r:./../../class/lib/net_4_x/secxml/System.dll -nowarn:618,672,219,67,169,612 -resource:Test/System/test-uri-props.txt,test-uri-props.txt -resource:Test/System/test-uri-props-manual.txt,test-uri-props-manual.txt -resource:Test/System/test-uri-relative-props.txt,test-uri-relative-props.txt -d:MONO_FEATURE_PROCESS_START -d:MONO_FEATURE_THREAD_ABORT -d:MONO_FEATURE_THREAD_SUSPEND_RESUME -d:MONO_FEATURE_MULTIPLE_APPDOMAINS</flags>
<output>net_4_x_System_test.dll</output>
<built_sources></built_sources>
<library_output>net_4_x_System_test.dll</library_output>
<boot></boot>
<flags>/codepage:65001 -d:NET_4_0 -d:NET_4_5 -d:NET_4_6 -d:MONO -d:DISABLE_CAS_USE -nowarn:1699 -nostdlib -r:./../../class/lib/net_4_x/mscorlib.dll -debug -optimize /noconfig -r:System.Xml -r:System</flags>
<output>mconfig.exe</output>
- <built_sources>Mono.MonoConfig/consts.cs</built_sources>
+ <built_sources></built_sources>
<library_output>./../../class/lib/net_4_x/mconfig.exe</library_output>
<fx_version>4.5</fx_version>
<profile>net_4_x</profile>
}
}
}
+
+ static void SystemDataConnectionReplace (string srcdir, string targetdir, string target, string ns, string factory, string conn)
+ {
+ var t = File.ReadAllText (Path.Combine (srcdir, "DbConnectionHelper.cs"));
+
+ File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("NAMESPACE", ns).Replace ("CONNECTIONFACTORYOBJECTNAME", factory).Replace ("CONNECTIONOBJECTNAME", conn));
+ }
+
+ static void SystemDataParameterReplace (string srcdir, string targetdir, string target, string resns, string ns, string parname)
+ {
+ var t = File.ReadAllText (Path.Combine (srcdir, "DbParameterHelper.cs"));
+
+ File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("RESNAMESPACE", resns).Replace ("NAMESPACE", ns).Replace ("PARAMETEROBJECTNAME", parname));
+ }
+
+ static void SystemDataParameterCollReplace (string srcdir, string targetdir, string target, string resns, string ns, string parname)
+ {
+ var t = File.ReadAllText (Path.Combine (srcdir, "DbParameterCollectionHelper.cs"));
+
+ Console.WriteLine ("Creating " + Path.Combine (targetdir, target));
+ File.WriteAllText (Path.Combine (targetdir, target), t.Replace ("RESNAMESPACE", resns).Replace ("PARAMETERCOLLECTIONOBJECTNAME", parname + "Collection").Replace ("NAMESPACE", ns).Replace ("PARAMETEROBJECTNAME", parname));
+ }
+
+ static void GenerateSystemData (string bdir)
+ {
+ var rs = Path.Combine (bdir, "class", "referencesource", "System.Data", "System", "Data", "ProviderBase");
+ var sd = Path.Combine (bdir, "class", "System.Data");
+
+ SystemDataConnectionReplace (rs, sd, "gen_OdbcConnection.cs", "System.Data.Odbc", "OdbcConnectionFactory.SingletonInstance", "OdbcConnection");
+ SystemDataConnectionReplace (rs, sd, "gen_OleDbConnection.cs", "System.Data.OleDb", "OleDbConnectionFactory.SingletonInstance", "OleDbConnection");
+ SystemDataConnectionReplace (rs, sd, "gen_SqlConnection.cs", "System.Data.SqlClient", "SqlConnectionFactory.SingletonInstance", "SqlConnection");
+
+ SystemDataParameterReplace (rs, sd, "gen_OdbcParameter.cs", "System.Data", "System.Data.Odbc", "OdbcParameter");
+ SystemDataParameterReplace (rs, sd, "gen_OleDbParameter.cs", "System.Data", "System.Data.OleDb", "OleDbParameter");
+ SystemDataParameterReplace (rs, sd, "gen_SqlParameter.cs", "System.Data", "System.Data.SqlClient", "SqlParameter");
+
+ SystemDataParameterCollReplace (rs, sd, "gen_OdbcParameterCollection.cs", "System.Data", "System.Data.Odbc", "OdbcParameter");
+ SystemDataParameterCollReplace (rs, sd, "gen_OleDbParameterCollection.cs", "System.Data", "System.Data.OleDb", "OleDbParameter");
+ SystemDataParameterCollReplace (rs, sd, "gen_SqlParameterCollection.cs", "System.Data", "System.Data.SqlClient", "SqlParameter");
+ }
static void Main (string [] args)
{
Filter (bdir + "/build/common/Consts.cs.in",
bdir + "/build/common/Consts.cs",
(i, o) => o.Write (i.ReadToEnd ().Replace ("@MONO_VERSION@", "2.5.0")));
+
+ GenerateSystemData (bdir);
break;
default: