Browse Source

Merge 3.0 to trunk.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5506 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
42eb68eeb7
  1. 28
      samples/SharpDevelopReports/SampleReports/FormSheet/JCA.srd
  2. 37
      samples/SharpDevelopReports/SampleReports/Ilist/ContributorsList.srd
  3. 35
      samples/SharpDevelopReports/SampleReports/ProviderIndependent/NoConnectionReport.srd
  4. 38
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  5. 954
      src/AddIns/BackendBindings/Ruby/IronRuby/CHANGELOG.txt
  6. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.Yaml.dll
  7. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.dll
  8. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.dll
  9. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Dynamic.dll
  10. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Core.dll
  11. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Debugging.dll
  12. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.ExtensionAttribute.dll
  13. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Helpers.dll
  14. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.dll
  15. BIN
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe
  16. 6
      src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe.config
  17. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.addin
  18. 3
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj
  19. 14
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyAstWalker.cs
  20. 16
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyComponentWalker.cs
  21. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/ir.exe.config
  22. 10
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Designer/RubyBaseClassTests.cs
  23. 7
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeDiscoveryService.cs
  24. 6
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeResolutionService.cs
  25. 2
      src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs
  26. 45
      src/AddIns/Misc/SubversionAddIn/Project/Resources/TortoiseSvnNotFoundForm.xfrm
  27. 19
      src/AddIns/Misc/SubversionAddIn/Project/Src/Gui/TortoiseSvnNotFoundForm.cs
  28. 1
      src/AddIns/Misc/SubversionAddIn/Project/SubversionAddIn.csproj
  29. 4
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  30. 121
      src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs
  31. 113
      src/Main/Base/Project/Src/Gui/Dialogs/ToolNotFoundDialog.Designer.cs
  32. 47
      src/Main/Base/Project/Src/Gui/Dialogs/ToolNotFoundDialog.cs
  33. 9
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  34. 4
      src/Main/Base/Project/Src/Project/IProject.cs
  35. 9
      src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs
  36. 41
      src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs
  37. 18
      src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs
  38. 25
      src/Main/Base/Project/Src/Project/MSBuildInternals.cs
  39. 12
      src/Main/Base/Project/Src/Project/Solution/Solution.cs
  40. 5
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
  41. 236
      src/Setup/Files.wxs
  42. 24
      src/Setup/Setup.wxs
  43. 19
      src/Tools/Tools.build

28
samples/SharpDevelopReports/SampleReports/FormSheet/JCA.srd

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<ReportSettings>
<DefaultFont>Microsoft Sans Serif, 10pt</DefaultFont>
<DataModel>FormSheet</DataModel>
<FileName>Report1.srd</FileName>
<FileName>D:\SharpDevelop3.0_CHECKOUT\SharpDevelop\samples\SharpDevelopReports\SampleReports\FormSheet\JCA.srd</FileName>
<RightMargin>50</RightMargin>
<UseStandardPrinter>True</UseStandardPrinter>
<SortColumnCollection />
@ -42,8 +42,8 @@ @@ -42,8 +42,8 @@
<Size>582, 50</Size>
<ScaleImageToSize>False</ScaleImageToSize>
<BackColor>Window</BackColor>
<RelativeFileName>D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</RelativeFileName>
<ImageFileName>D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</ImageFileName>
<RelativeFileName>..\..\Logos\Bannerbeige2.gif</RelativeFileName>
<ImageFileName>D:\SharpDevelop3.0_CHECKOUT\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</ImageFileName>
</BaseImageItem>
</Items>
<Location>50, 50</Location>
@ -75,20 +75,6 @@ Joint Copyright Assignment by Contributor To AlphaSierraPapa</Text> @@ -75,20 +75,6 @@ Joint Copyright Assignment by Contributor To AlphaSierraPapa</Text>
<Size>597, 57</Size>
<ForeColor>ControlText</ForeColor>
</BaseTextItem>
<BaseLineItem>
<StartLineCap>Flat</StartLineCap>
<FromPoint>10, 5</FromPoint>
<Location>92, 82</Location>
<Name>reportLineControl1</Name>
<Size>597, 9</Size>
<EndLineCap>Flat</EndLineCap>
<DashStyle>Solid</DashStyle>
<BackColor>White</BackColor>
<DashLineCap>Flat</DashLineCap>
<ForeColor>ControlText</ForeColor>
<ToPoint>40, 5</ToPoint>
<Thickness>1</Thickness>
</BaseLineItem>
</Items>
<Location>50, 150</Location>
<DrawBorder>False</DrawBorder>
@ -122,7 +108,7 @@ Country:_______________________________ Facsimile :_______________ @@ -122,7 +108,7 @@ Country:_______________________________ Facsimile :_______________
<FormatString />
<Name>reportTextItem1</Name>
<FrameColor>WindowFrame</FrameColor>
<Size>622, 135</Size>
<Size>639, 135</Size>
<ForeColor>ControlText</ForeColor>
</BaseTextItem>
<BaseTextItem>
@ -142,7 +128,7 @@ Country:_______________________________ Facsimile :_______________ @@ -142,7 +128,7 @@ Country:_______________________________ Facsimile :_______________
<FormatString />
<Name>reportTextItem2</Name>
<FrameColor>WindowFrame</FrameColor>
<Size>675, 67</Size>
<Size>639, 67</Size>
<ForeColor>ControlText</ForeColor>
</BaseTextItem>
<BaseTextItem>
@ -165,7 +151,7 @@ Country:_______________________________ Facsimile :_______________ @@ -165,7 +151,7 @@ Country:_______________________________ Facsimile :_______________
<FormatString />
<Name>reportTextItem3</Name>
<FrameColor>WindowFrame</FrameColor>
<Size>695, 113</Size>
<Size>639, 113</Size>
<ForeColor>ControlText</ForeColor>
</BaseTextItem>
<BaseTextItem>
@ -204,7 +190,7 @@ Please send a signed copy of this assignment by facsimile to AlphaSierraPapa at: @@ -204,7 +190,7 @@ Please send a signed copy of this assignment by facsimile to AlphaSierraPapa at:
<FormatString />
<Name>reportTextItem5</Name>
<FrameColor>WindowFrame</FrameColor>
<Size>695, 80</Size>
<Size>639, 80</Size>
<ForeColor>ControlText</ForeColor>
</BaseTextItem>
<BaseTextItem>

37
samples/SharpDevelopReports/SampleReports/Ilist/ContributorsList.srd

@ -2,28 +2,27 @@ @@ -2,28 +2,27 @@
<ReportModel>
<ReportSettings>
<ReportSettings>
<GridSize>8, 8</GridSize>
<PageSize>827, 1169</PageSize>
<CommandText />
<Landscape>False</Landscape>
<GroupColumnsCollection />
<RightMargin>50</RightMargin>
<NoDataMessage>No Data for this Report</NoDataMessage>
<DefaultFont>Microsoft Sans Serif, 10pt</DefaultFont>
<ReportType>DataReport</ReportType>
<DataModel>PushData</DataModel>
<RightMargin>50</RightMargin>
<UseStandardPrinter>True</UseStandardPrinter>
<CommandType>Text</CommandType>
<GraphicsUnit>Millimeter</GraphicsUnit>
<TopMargin>50</TopMargin>
<ConnectionString />
<Padding>5, 5, 5, 5</Padding>
<LeftMargin>50</LeftMargin>
<SortColumnCollection />
<DataModel>PushData</DataModel>
<BottomMargin>50</BottomMargin>
<AvailableFieldsCollection />
<ReportName>Report1</ReportName>
<NoDataMessage>No Data for this Report</NoDataMessage>
<LeftMargin>50</LeftMargin>
<PageSize>827, 1169</PageSize>
<Padding>5, 5, 5, 5</Padding>
<BottomMargin>50</BottomMargin>
<CommandType>Text</CommandType>
<ParameterCollection />
<Landscape>False</Landscape>
<ReportName>Report1</ReportName>
<TopMargin>50</TopMargin>
<GroupColumnsCollection />
<GraphicsUnit>Millimeter</GraphicsUnit>
<CommandText />
<ReportType>DataReport</ReportType>
<ConnectionString />
</ReportSettings>
</ReportSettings>
<SectionCollection>
@ -87,8 +86,8 @@ @@ -87,8 +86,8 @@
<Size>661, 42</Size>
<ScaleImageToSize>False</ScaleImageToSize>
<BackColor>Window</BackColor>
<RelativeFileName>D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</RelativeFileName>
<ImageFileName>D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</ImageFileName>
<RelativeFileName>..\Logos\Bannerbeige2.gif</RelativeFileName>
<ImageFileName>D:\SharpDevelop3.0_CHECKOUT\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos\Bannerbeige2.gif</ImageFileName>
</BaseImageItem>
<BaseLineItem>
<StartLineCap>Flat</StartLineCap>

35
samples/SharpDevelopReports/SampleReports/ProviderIndependent/NoConnectionReport.srd

@ -2,25 +2,11 @@ @@ -2,25 +2,11 @@
<ReportModel>
<ReportSettings>
<ReportSettings>
<GridSize>8, 8</GridSize>
<PageSize>827, 1169</PageSize>
<CommandText>SELECT * FROM Kategorien</CommandText>
<Landscape>False</Landscape>
<GroupColumnsCollection />
<RightMargin>50</RightMargin>
<NoDataMessage>No Data for this Report</NoDataMessage>
<DefaultFont>Microsoft Sans Serif, 10pt</DefaultFont>
<ReportType>DataReport</ReportType>
<DataModel>PullData</DataModel>
<RightMargin>50</RightMargin>
<UseStandardPrinter>True</UseStandardPrinter>
<CommandType>Text</CommandType>
<GraphicsUnit>Millimeter</GraphicsUnit>
<TopMargin>50</TopMargin>
<ConnectionString />
<Padding>5, 5, 5, 5</Padding>
<LeftMargin>50</LeftMargin>
<SortColumnCollection />
<DataModel>PullData</DataModel>
<BottomMargin>50</BottomMargin>
<AvailableFieldsCollection>
<AbstractColumn>
<ColumnName>Kategorie-Nr</ColumnName>
@ -39,13 +25,26 @@ @@ -39,13 +25,26 @@
<DataTypeName>System.Byte[]</DataTypeName>
</AbstractColumn>
</AvailableFieldsCollection>
<ReportName>Report1</ReportName>
<NoDataMessage>No Data for this Report</NoDataMessage>
<LeftMargin>50</LeftMargin>
<PageSize>827, 1169</PageSize>
<Padding>5, 5, 5, 5</Padding>
<BottomMargin>50</BottomMargin>
<CommandType>Text</CommandType>
<ParameterCollection>
<BasicParameter>
<ParameterName>p1</ParameterName>
<ParameterValue>aaaaa</ParameterValue>
</BasicParameter>
</ParameterCollection>
<Landscape>False</Landscape>
<ReportName>Report1</ReportName>
<TopMargin>50</TopMargin>
<GroupColumnsCollection />
<GraphicsUnit>Millimeter</GraphicsUnit>
<CommandText>SELECT * FROM Kategorien</CommandText>
<ReportType>DataReport</ReportType>
<ConnectionString />
</ReportSettings>
</ReportSettings>
<SectionCollection>
@ -311,7 +310,7 @@ @@ -311,7 +310,7 @@
<BackColor>Gainsboro</BackColor>
<CanShrink>False</CanShrink>
<StringTrimming>None</StringTrimming>
<Text>'This Report contains : ' + count() + ' DataRows'</Text>
<Text>='This Report contains : ' + count() + ' DataRows'</Text>
<Location>5, 4</Location>
<ContentAlignment>MiddleCenter</ContentAlignment>
<Visible>True</Visible>

38
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -58,7 +58,7 @@ namespace SharpReportSamples @@ -58,7 +58,7 @@ namespace SharpReportSamples
int y = startupPath.IndexOf(samplesDir);
string startPath = startupPath.Substring(0,y + samplesDir.Length) + @"SampleReports\";
//D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports
//D:\Reporting3.0_branches\SharpDevelop\samples\SharpDevelopReports\SampleReports
string pathToFormSheet = startPath + formSheetDir;
@ -94,7 +94,6 @@ namespace SharpReportSamples @@ -94,7 +94,6 @@ namespace SharpReportSamples
private void UpdateStatusbar (string text)
{
this.label1.Text = text;
}
@ -106,7 +105,6 @@ namespace SharpReportSamples @@ -106,7 +105,6 @@ namespace SharpReportSamples
} else if (s == "NoConnectionReport") {
this.RunProviderIndependent(reportName);
}
else {
ReportParameters parameters = ReportEngine.LoadParameters(reportName);
@ -114,11 +112,15 @@ namespace SharpReportSamples @@ -114,11 +112,15 @@ namespace SharpReportSamples
if ((parameters != null)&& (parameters.SqlParameters.Count > 0)){
parameters.SqlParameters[0].ParameterValue = "I'm the Parameter";
}
this.previewControl1.SetupAsynchron(reportName,parameters);
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{
this.RunStandardReport(reportName);
};
this.previewControl1.RunReport(reportName,parameters);
}
}
#region ProviderIndependent
private void RunProviderIndependent (string reportName)
{
@ -129,7 +131,11 @@ namespace SharpReportSamples @@ -129,7 +131,11 @@ namespace SharpReportSamples
parameters.ConnectionObject = con;
parameters.SqlParameters[0].ParameterValue = "Provider Independent";
this.previewControl1.SetupAsynchron(reportName,parameters);
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{
this.RunProviderIndependent(reportName);
};
this.previewControl1.RunReport(reportName,parameters);
}
@ -147,19 +153,29 @@ namespace SharpReportSamples @@ -147,19 +153,29 @@ namespace SharpReportSamples
{
ReportModel model = ReportEngine.LoadReportModel(fileName);
// sorting is done here, but, be carefull, misspelled fieldnames will cause an exception
//ReportSettings settings = model.ReportSettings;
//settings.SortColumnCollection.Add(new SortColumn("First",System.ComponentModel.ListSortDirection.Ascending));
// Both variable declarations are valid
ContributorCollection list = ContributorsReportData.CreateContributorsList();
IDataManager dm = DataManager.CreateInstance(list,model.ReportSettings);
ContributorCollection contributorCollection = ContributorsReportData.CreateContributorsList();
IDataManager dataManager = DataManager.CreateInstance(contributorCollection,model.ReportSettings);
// List<Contributor> list = ContributorsReportData.CreateContributorsList();
// IDataManager dm = DataManager.CreateInstance(list,model.ReportSettings);
// this.previewControl1.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
this.previewControl1.SetupAsynchron(model,dm);
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)
{
this.previewControl1.RunReport(model,dataManager);
};
this.previewControl1.RunReport(model,dataManager);
}
//Try this to react to SectionrenderEvent,
/*
private void PushPrinting (object sender,SectionRenderEventArgs e)
@ -245,8 +261,6 @@ namespace SharpReportSamples @@ -245,8 +261,6 @@ namespace SharpReportSamples
}
}
}
*/
}
}

954
src/AddIns/BackendBindings/Ruby/IronRuby/CHANGELOG.txt

@ -1,10 +1,880 @@ @@ -1,10 +1,880 @@
CHANGELOG
=========
ironruby-0.9.4 (RC2) 2010-02-10
-------------------------------
Here are all the commits for this release:
http://github.com/ironruby/ironruby/commits/v1.0-rc2
Up until the first commit after the last release:
http://github.com/ironruby/ironruby/commit/6da2f24f57cb0f3799daac2ba190f7888cf7753c
The following commit messages are for all the commits in GIT which are
marked as "sync to tfs" or something to that effect:
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1561136
User: tomat
Checked in by: merllab
Date: Saturday, February 06, 2010 5:43:11 PM
Comment:
The OverloadResolver was performing quite a bit of reflection (mostly calling ParameterInfo.IsDefined) which turned out to consume about 15% of RoR request time.
This change introduces OverloadInfo abstraction which captures all properties of a method that are needed to perform overload resolution. The default implementation (ReflectionOverloadInfo) holds on a MethodBase and uses reflection to determine these properties. The implementation caches information that is expensive to retrieve via reflection. The OverloadInfo is a public abstract class and could be implemented by languages so that almost no reflection is needed at runtime. The ultimate goal is to remove OverloadResolver’s dependency on Reflection types (other than Type). This change goes half way – it abstracts away reflection in the first phase of overload resolution (building target sets). More work needs to be done to remove the dependency on Reflection completely in the expression building phase. It would also require some breaking changes in DLR so we keep that part post IronRuby v1.0.
IronRuby implements LibraryOverload subclass of OverloadInfo. Library initializers generator performs custom attribute reflection on library methods and compresses the retrieved information to 31 bits. It imposes a limit of 15 parameters on library methods (more parameters can be supported if needed). The flags are then used at overload resolution time instead of calling ParameterInfo.IsDefined.
The difference in perf:
> ir.exe -X:CompilationThreshold 2 test.rb
// before change
Initialized in 7.8005s
10000 requests: 289 requests per second
Peak working set: 217MB
// after change
Initialized in 7.64449s
10000 requests: 337 requests per second
Peak working set: 216MB
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1560250
User: jdeville
Checked in by: merllab
Date: Friday, February 05, 2010 2:20:09 PM
Comment:
Upgrades the IronRuby installer creation to Wix3.
* Adds Wix3 files to External
* Refactor's installer wxs's to allow per-user installs
* lays the foundations for per user installs
** At this time I am unable to get a true single package installer to work correctly. I plan on looking into this more, but for now elevation is still required
* Adds a rake library and a Rakefile for building the MSI. `rake IronRuby-0.9.4.0.msi` will build the stated file. This requires Wix3 since it uses the HEAT tool.
* Updates the version number to 0.9.4.0
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1559161
User: jdeville
Checked in by: merllab
Date: Thursday, February 04, 2010 11:33:13 PM
Comment:
Closes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2146
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2959
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2949
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2907
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2765
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2753
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2686
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2462
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1357
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3183
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2913
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=957
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1849
* Also adds a spec for CP# 3834
* Adds the ComTest project and exe, and modifies InstallAndRun.bat to register it
* Deletes the ADODB specs in favor of the COMTest specs
Also includes the IR Release queue files that are live on MerlinSnap1 to check them in.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1546541
User: jimmysch
Checked in by: merllab
Date: Monday, February 01, 2010 9:46:49 PM
Comment:
Couple of easy fixes for IronRuby 1.0 RC2:
"NoOf" does not mangle to "no_of"
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3562
exec cant run a batch file
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3619
ir.exe -e doesn't treat arguments correctly
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=462
IO.pipe and IP.sysopen not defined
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1919
Zlib::Deflate missing constructors
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3319
See bugs for more info.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1545267
User: tomat
Checked in by: merllab
Date: Monday, February 01, 2010 3:25:22 AM
Comment:
Kernel#binding captures receiver and eval uses it as "self".
Adds FxCop configuration to yaml .csproj.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1544575
User: tomat
Checked in by: merllab
Date: Saturday, January 30, 2010 11:50:02 AM
Comment:
Fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3306
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3307
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3616
and related issues.
Enables some tests in active_support suite.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1544546
User: tomat
Checked in by: merllab
Date: Saturday, January 30, 2010 10:59:27 AM
Comment:
Fixes target object boxing in singleton method definition.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1544319
User: sborde
Checked in by: merllab
Date: Friday, January 29, 2010 6:21:06 PM
Comment:
Config::CONFIG[“libdir”] was not normalized in non-dev environments. This was causing "igem install" to install bat files for the gems to a less than ideal location.
Adds some dash_r specs
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1532924
User: jimmysch
Date: Thursday, January 28, 2010 7:48:26 PM
Comment:
Update ironruby.rack readme, and add a fails tag for the adodb com interop test which keeps failing in snap (OK'd by jdeville).
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1532917
User: jimmysch
Checked in by: merllab
Date: Thursday, January 28, 2010 7:38:01 PM
Comment:
Fixes for running rack-based applications.
Ruby changes:
- Put ESPIPE class in Errno module; it was defined at top-level which is
incorrect, and Sinatra's error-reporting depends on it.
- Remove 'hacks' from irake; it doesn't exist anymore
- Adds sinatra 0.9.4 and make sure other gems have executables in the
gembin dir. If that is added to the path, then "ir -S rails" will work.
IronRuby.Rack changes:
- Fix bug that the "Rails checkbox" found:
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M001612.
Basically take the query-string and request body directly from IIS,
rather than *incorrectly* reconstructing it. =P
- rack.version should be set to Rack::VERSION, rather than hardcoded.
- Generate the rack env with Ruby types the first time around, and only
execute Ruby code where needed.
- Make sure AppPath is a full path
- Lazy load web.config settings, and allow setting RACK_ENV from
web.config.
- Remove locks in HttpHandler and HttpHandlerFactory.
- Implement a asynchronous request handler, but it's not wired up yet.
- Manually set TOPLEVEL_BINDING since it's not set automatically when
IronRuby is embedded.
- Canonlicalize paths of files added to the load path, so Ruby files
always show "/" as the path separator.
- Ruby errors shouldn't be swallowed because the error handler threw
- Always log exceptions to ironrack.log, and only show them to the HTML
page when RACK_ENV is 'development' or the build is DEBUG.
- Update Rails example app, and run all examples in RACK_ENV production
mode.
- Add Rails example that uses ActiveRecord (IronRuby.RailsDB.Example)
- Add Microsoft.Dynamic.csproj to IronRuby.Rack.sln
- Update permissions instructions in README.
- Clean up little perf test, and add an actual test of IronRuby.Rack,
though testing is still very lacking.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1496558
User: tomat
Checked in by: merllab
Date: Wednesday, January 27, 2010 5:19:21 PM
Comment:
File.basename fix
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1496258
User: tomat
Checked in by: merllab
Date: Wednesday, January 27, 2010 2:26:19 PM
Comment:
tfpt review /shelveset:RSym14;tomat
DLR:
Adds ExpressionCollectionBuilder as a specialization of ExpressionCollectionBuilder<Expression>.
Ruby:
Replaces SymbolId usage by RubySymbol class. Ruby symbols are possibly encoded interned frozen strings.
Enables KCODE on Silverlight.
Allows class reopening in libraries (a class defined in Ruby can be reopened by a library class).
Fixes bunch of bugs in YAML.
Fixes
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3466
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1494375
User: sborde
Checked in by: merllab
Date: Tuesday, January 26, 2010 4:48:53 PM
Comment:
Dir.mkdir should raise Errno::EACCESS instead of System.UnauthorizedException
Diables ActiveRecord tests since some fail intermittently
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1493766
User: jimmysch
Checked in by: merllab
Date: Tuesday, January 26, 2010 12:12:15 PM
Comment:
-S command-line argument: load file from path (eg. ir -S irb)
(Shelveset: dash_upper_s;REDMOND\jimmysch | SNAP CheckinId: 10198)
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1484364
User: sborde
Checked in by: merllab
Date: Monday, January 25, 2010 2:12:20 PM
Comment:
Enables active_record tests in irtests.rb. They require SQLExpress to be installed on the machine.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1482236
User: sborde
Checked in by: merllab
Date: Friday, January 22, 2010 5:44:06 PM
Comment:
Flushes out iconv implementation. Added more specs
Made String#encoding visible only in 1.9 mode
Adds optional paramter to StringScanner.new
The above fixes enable many more Rails tests
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1481259
User: jdeville
Checked in by: merllab
Date: Friday, January 22, 2010 10:22:23 AM
Comment:
cleans up a few critical tags:
* re-patches mock.rb with the patch to remove respond_to last
* implements a basic implementation of ARGF, there are many holes that still need to be filled in the back end, but the basic idea works, and the specs are no longer critical.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1481229
User: jdeville
Checked in by: merllab
Date: Friday, January 22, 2010 9:14:51 AM
Comment:
Silverlight Debug binaries raise an assert when hit by the tests, and if SL Debug is built after SL Release, the SL Debug binaries overwrite the SL Release binaries in the IIS direcotry. By not running BuildSilverLightTests.bat we ensure that only the release binaries get tested, even if they run on the same machine one after another.
This also fixes the assert issue by changing the code page in Silverlight
(Shelveset: silverlightdebugfix;REDMOND\jdeville | SNAP CheckinId: 10174)
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1480603
User: sborde
Checked in by: merllab
Date: Friday, January 22, 2010 12:01:14 AM
Comment:
Added active_resource and action_mailer tests to irtests.rb
Added a category (disable_unstable_tests) of unstable tests to utr.rb so that we can track non-deterministic failures. Also a category (exclude_critical_files) for critical test files that cause an exception when loaded (even if no tests are run from the file).
Disabled a TestMultiTask test in rake_tests. MultiTaskTest uses monitor.rb which uses Thread.critical= in a way that is not friendly with native threads. Ideally, we will implement our own version of monitor.rb that does not uses Thread.critical=
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1480064
User: jdeville
Checked in by: merllab
Date: Thursday, January 21, 2010 3:32:17 PM
Comment:
Moves APTCA out of an if SIGNED ifdef so we pass FxCop when unsigned.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1479709
User: tomat
Checked in by: merllab
Date: Thursday, January 21, 2010 1:57:23 PM
Comment:
Implements BEGIN and END blocks.
Fixes exception handling during shutdown.
Fixes block comparisons.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1479540
User: sborde
Checked in by: merllab
Date: Thursday, January 21, 2010 11:32:57 AM
Comment:
Updates to Rails 2.3.5
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1479538
User: sborde
Checked in by: merllab
Date: Thursday, January 21, 2010 11:29:28 AM
Comment:
open("|shell_command")
Removes other tags for Kernel.open
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1478595
User: dinov
Checked in by: merllab
Date: Thursday, January 21, 2010 8:20:13 AM
Comment:
25819 DynamicObject.TryBinaryOperation not called for comparison operators
25477 Compat conversion binder isn't used to let objects convert themselves
We need to respect errorSuggestion and always fallback for all binders. Also fixes a problem w/ incorrect # of arguments in the invoke binder.
25796 Debugging is Hit-and-Miss under 2.6 and Eclipse
We cannot clear the trace pipeline when calling a trace function because that will clear it for all threads. Instead we remember if we are in a traceback and if so don’t dispatch further events. Also fixes an issue where the code name was in correct (should be “<modue>”) and updates a bunch of tests accordingly.
25775 Can't delete function attributes.
This was already fixed, adding a test case
25700 Importing is not thread safe
We need to lock when creating a built-in module.
25673 Silverlight lookup_error isn't available
Just making this available in Silverlight be removing ifdef’s
25708 ctypes.wintypes missing / wintypes simple types not implemented
Add support for variant bool type along w/ new test cases added to CPython’s ctypes tests
25709 _winreg exception missing error codes
Improves the error reporting in _winreg, and also improves our automatic translation of Win32Exceptions.
Also:
Fixing span reported for function w/o parameters
Fix issue w/ calling flush on non-Python file
Moving PythonService to GetService API so it works cross-process
Fixing performance of getting/setting scope vars via object operations
Standardizes on Not/IsFalse DLR expression types
Exposes PropertyType for all ReflectedGetter/Setters
Exposes DynamicOperations off of LanguageContext for languages to use
Adds CreateModule API to Python class for creating and publishing modules
codeplexcomment
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1475764
User: tomat
Checked in by: merllab
Date: Tuesday, January 19, 2010 7:37:08 PM
Comment:
The changeset focuses on reducing time spent in JIT to compile generic instantiations of various helper methods. These are mostly related to generic instructions that implement dynamic sites and method calls. It reduces the number of methods jitted during startup time of irb from 481 to 80 (with -X:CompilationThreshold 10000000), which translates to 34% time reduction:
rbr -X:CompilationThreshold 10000000 i.rb < exit.txt
i.rb:
---
s = Time.now
require 'irb'
IRB.start(__FILE__)
t = Time.now
p t - s
---
Before: 0.961096 seconds
After: 0.631063 seconds
DLR
Adds LightDynamicExpression – these reducible nodes reduce to strongly typed DynamicExpressions yet when interpreted use untyped dynamic sites (sites typed to CallSite<Func<CallSite, object*>>). Using light sites avoids jitting generic instantiations of various instructions, stubs and helpers that are strongly typed to the call-site signature. Also, strongly typed delegate types are created only when compiling the sites.
Adds helpers to CallInstruction that add MethodInfo to CallInstruction mapping into the internal cache. These helpers can be used by reflection caches that look up CLR helper methods. For example, Ruby’s ReflectionCache holds on MethodInfos for all RubyOps. Whenever a helper MethodInfo is needed a delegate is created for it and cached into CallInstruction’s cache along with the instruction that dispatches to it. Since all static helpers are known upfront the delegates and the corresponding instructions can all be ngen’d.
Moves helpers for rule interpretation from Ruby to DynamicUtils.
Python
Replaces LazyDynamicExpressions with subclasses of LightDynamicExpressions.
Ruby
Simplifies rules interpretation, moves related helpers to DLR.
Uses LightDynamicExpression for all dynamic sites.
Uses CallInstruction caching for RubyOps.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1475657
User: sborde
Checked in by: merllab
Date: Tuesday, January 19, 2010 5:35:17 PM
Comment:
("%+d" % 0) should equal "+0", not "0"
defined? should clear $! of any exception that may have been thrown by const_missing
Makes NativeMethods.SetEnvironmentVariable check if the call succeeded
Added –g to utr.rb to generate the tags for the failing tests
Adds an unstable tag for library\socket\basicsocket\send_spec as it hung on my machine
Fix for library\logger\logger\new_spec closing STDERR
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1475655
User: rdawson
Checked in by: merllab
Date: Tuesday, January 19, 2010 5:33:34 PM
Comment:
Bug fixes for gopackage against the latest dev10
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1473028
User: jdeville
Checked in by: merllab
Date: Monday, January 18, 2010 1:41:35 PM
Comment:
Updates RubySpecs and fixes bugs in FileOps, FileTest and Kernel. Also implements etc.rb to match MRI on windows.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1472246
User: sborde
Checked in by: merllab
Date: Monday, January 18, 2010 8:16:30 AM
Comment:
Fixes a bug in Proc equality comparison which was causing the ActionPack caching tests to fail
ENV["foo"] = "" should set the environment variable to an empty string, not delete it
Added Iconv::IllegalSequence etc
Implements RubyLambdaMethodInfo.GetArity
Rails test expect Array#sort_by to be a stable sort (ie. if #<=> returns 0, then the relative order of the elements in the original array is maintained). Worked around this in action_pack_tests
Splits up the Rails test harness files into tests that fail with MRI as well (which are often issues with the test)
Changes the tests to load specific versions of Rails and other gems. Without that, you get load errors because of incorrect versions being loaded
Changed the default of irtests to run the Rails tests. They can be skipped by using -m (for "minimum")
Added –r to utr.rb to run a single test case.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1461731
User: jimmysch
Checked in by: merllab
Date: Tuesday, January 12, 2010 2:11:06 PM
Comment:
IronRuby should emit PDBs in Silverlight
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1453163
User: sborde
Checked in by: merllab
Date: Friday, January 08, 2010 1:35:10 PM
Comment:
Fixes 25448: Can't use ObservableCollection in clrtype.py
Added some basic tests for clrtype.py other than the small sample. With this in place, it will be easier to add more tests going forward for new issues.
Fixed some other bugs that were caught by the new tests
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1438355
User: tomat
Checked in by: merllab
Date: Thursday, January 07, 2010 2:52:59 PM
Comment:
Adds support for Mono to Dev.bat. Dev.bat takes an optional “mono” parameter and a path to the Mono bin directory. If supplied, it sets ROWAN_RUNTIME environment variable to “mono” and Mono bin directory is added to PATH. ROWAN_RUNTIME variable is used by ir.cmd, irtest, and irtests.rb.
Adds aliases ipym, ipyrm, ipydm, rbxm, rbrm, rbdm that launch IronPython and IronRuby on Mono.
Fixes issues reported by mcs.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1429753
User: tomat
Checked in by: merllab
Date: Wednesday, January 06, 2010 1:32:35 PM
Comment:
DLR, Python:
- Adds more file system APIs to PAL. Obsoletes virtual methods GetFiles and GetDirectories in favor of GetFileSystemEntries.
Ruby:
- Fixes some Dir specs, adds support for Unicode file/directory names.
- Changes Dir and File methods to use PAL for file system operations. Adds Dir tests exercising a custom virtual file system.
- Fixes encoding of file paths. This might fix some of the reported System::Text::DecoderFallbackException issues (http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2931)
- Fixes issues with –v command line option.
- Fixes bugs in methods using MutableString.GetByteArray.
- Fixes MutableString#inspect and dump to handle strings with incomplete UTF16 characters.
- Fixes bugs in glob.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1426166
User: tomat
Checked in by: merllab
Date: Tuesday, January 05, 2010 7:22:28 PM
Comment:
(AstImprovements2)
DLR:
Adds ExpressionCollectionBuilder (moves the implementation from IronRuby). This allows to construct optimized expressions via C# initializer syntax. Adds a subclass BlockBuilder that can be used to build blocks like so:
Expression result = new BlockBuilder {
expression1,
(condition) ? foo : null,
anotherExpression
};
If the expression used in the initializer is null it is skipped.
If the expression is a sequence of expressions (IEnumerable<Expression>) its content is included in the block.
BlockBuilder defines an implicit conversion to Expression.
Ruby:
Tree transformation refactorings:
- Replaces some AstFactory utility methods with AstUtils equivalents.
- Creates Lambda<T> explicitly to avoid calls to MakeGenericType.
- Uses BlockBuilder for building complex blocks.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1425432
User: tomat
Checked in by: merllab
Date: Tuesday, January 05, 2010 11:07:32 AM
Comment:
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2819&ProjectName=ironruby.
Sets RUBY_PLATFORM according to Environment.OSVersion.Platform.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1405890
User: jdeville
Checked in by: merllab
Date: Wednesday, December 30, 2009 1:51:56 PM
Comment:
Closes the following bugs:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3196
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2118
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2044
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2217
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2912
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2962
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1920
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2116
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1353
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1354
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1651
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2051
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2892
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2827
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2514
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2654
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2191
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2190
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1558
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1486
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1485
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=923
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=597
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1483
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2421
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1366657
User: jdeville
Checked in by: merllab
Date: Thursday, December 17, 2009 11:16:24 PM
Comment:
Unifies the test runner for Test::Unit. I've really just removed the duplication found in the various *Tests.rb files in Ruby\Tests\Scripts. I've adjusted all affected scripts:
* irtests
* generate_test-unit_tags.rb
* rake.generictest
* rubygems.generictest
Also adds tzinfo to SNAP
Usage of utr:
utr testname will run the tests setup by the file testname_tests.rb, thus utr gem will run the Gem tests. Passing the -all flag will ignore the skipped tests and run all tests, this currently doesn't work for gems, but I will be removing our custom skips and going back to the monkeypatching model. Eventually, I will implement a -list flag to list all tests utr can see.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1346865
User: ddicato
Checked in by: merllab
Date: Tuesday, December 15, 2009 10:24:40 AM
Comment:
Removes some excess methods from BigIntegerV4 that the underlying BigInt does not implement, to help phase out this wrapper:
- Moves ToFloat64 and TryToFloat64 into MathUtils as extension methods
- Removes the IConvertible interface from BigIntegerV4
Fixes minor bugs in math.cs and socket.cs, and removes dependenies on BigInteger's IConvertible methods.
Corrects BigIntegerV2's broken right-shift so we don't have to permute the value in LongOps.RightShift (which is broken given BigIntegerV4's correct behavior).
Fixes BigIntegerV4's float and double conversions to overflow properly by adding an implicit BigInteger to double conversion.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1309049
User: tomat
Checked in by: merllab
Date: Friday, December 04, 2009 5:17:58 PM
Comment:
Fixes handling of encoded strings in MutableString.Append, CompareTo and Inspect.
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2892
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1309042
User: dinov
Checked in by: merllab
Date: Friday, December 04, 2009 5:15:01 PM
Comment:
Default Binder Improvements:
Decouples DefaultBinder from ScriptDomainManager. Leaves ScriptDomainManager ctors for backwards compat, moves IronPython/IronRuby to overriding PrivateBinding which is the only reason we needed the SDM
Makes DefaultBinder non-abstract so that you can simply new one up if you don't need any customization
Removes unused "DefaultLanguageContext.cs" file which was actually a DefaultBinder subclass
Adds overloads for various default binder operations which don't take a OverloadResolverFactory - instead they use the DefaultOverloadResolverFactory.
Adds DoOperation overload which takes an ExpressionType for better compat w/ the DLR binders, obsoletes string version, moves this lookup for OperatorInfo into a dictionary lookup
Also starts adding some unit tests for the default binder
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1305319
User: tomat
Checked in by: merllab
Date: Thursday, December 03, 2009 12:12:24 PM
Comment:
Implements adaptive loop compilation. This feature needed major changes to local variable handling and control flow implementation in interpreter.
Local variables
Replaces a list of local variables with LocalsVariable structure that encapsulates a dictionary. It doesn’t support variable shadowing yet but it at least detects it and throws NotSupportedException. Previously we silently used wrong indices to the variable array.
Control flow
Reimplements interpreter goto instructions and exception handling. Goto instructions used to encode all information describing the jump (a list of finally blocks to be executed and target stack depth). The loop compiler needs to find all GotoExpressions within the loop that jump out of the loop and associate them with the corresponding Goto instructions. This cannot be done in presence of reducible nodes as they don’t preserve nodes identity. Therefore we need to move the jump information from goto instruction to the target label and track current try and finally blocks.
GotoInstruction, EnterTryFinallyInstruction and LeaveExceptionHandlerInstruction derive now from IndexedBranchInstruction. While OffsetInstruction hold on a relative offset these instructions hold on the target label index in the table of RuntimeLabels. RuntimeLabel struct comprises of target instruction index and target stack depth and target continuation stack depth. That’s all it is needed for a jump to be executed. Jumps via label index are a little bit slower than jumps to relative offset since they need to look up the target index in the label table. Also the label table is only as big as there are gotos and try-catch/try-finally blocks in the lambda. We can easily convert other branch instructions into IndexedBranchInstructions if we find it better.
Using indexed branch instructions moves target stack depth to the label. We also need to move finally list out of goto instruction. Since a single label might be used as a target of multiple goto instructions/expressions and these could be nested in different try-finally blocks we need to track the stack of finally blocks that we enter and leave as we execute instructions.
EnterTryFinallyInstruction is added at the beginning of every try-finally block. This instruction pushes a local continuation into the stack of continuations stored on InterpretedFrame. The top item of this stack is current continuation. A continuation is implemented as an integer index into label table. The continuation pushed by EnterTryFinally points to finally clause.
GotoInstruction sets the current pending continuation and pending value (if it transfers a value) and jumps to the current continuation if there is any.
A GotoInstruction is emitted at the end of the try-finally body. This goto’s target is the end of the entire try expression.
EnterFinallyInstruction is emitted at the beginning of finally clause. It removes the current continuation from the continuation stack, pushes the pending continuation and value onto the data stack and invalidates them. If any exception is thrown but not caught during execution of finally clause the current pending continuation is canceled (and forgotten) and a new one is set.
LeaveFinallyInstruction is emitted at the end of the finally clause. It pops the pending continuation (and pending value) from data stack and yields to it. YeildToPendingContinuation operation compares continuation stack depth of the current continuation with the continuation stack depth of the pending one. It jumps to the pending one only if its depth is less, i.e. when there is no continuation (finally clause) to be executed before we can jump to the target block. Otherwise it jumps to the current continuation.
Whenever an exception occurs we catch it in Interpreter.Run method. We look for the exception handler that should be executed.
If we find one we perform the same steps as if we just executed GotoInstruction targeted to the exception handle: we set the current pending continuation to the label that points to the handler and set pending value to the exception object. Finally, we jump to the current continuation.
If there is no catch or fault handler we do the same as if there was one with instruction index Int32.MaxValue. That emulates a jump to the end of the instruction sequence. If this jump is not interrupted by another exception raised from some finally/fault block or goto jumping from a finally block we finish instruction execution and return from Run method with the current InstructionIndex set to the special value Int32.MaxValue. That indicates that we should rethrow the exception and so we do.
Moves InterpretedFrame chaining from IronRuby to the interpreter. The frames are linked into a stack by Interpreter.Run method so that each CLR frame of this method corresponds to an interpreted stack frame in the interpreted stack. The two traces can be combined into one. A static ThreadLocal<InterpretedFrame> variable is updated upon entry and exit from Run method.
Loop compiler
Adds a new EnterLoopInstruction that is injected at the beginning of a loop generated from LoopExpression. This instruction has a counter that increments each time it is executed. If the counter reached CompilationThreshold a compilation is started on a background thread. The instruction holds on the LoopExpression to compile. The loop needs to be massaged before we can compile it to a lambda. The lambda we produce looks like:
int lambda(InterpretedFrame frame) {
T$1 loc$1 = (T$1)frame.Data[$index1];
T$n loc$n = (T$n)frame.Data[$indexN];
StrongBox<object> closure_loc$1 = frame.Closure[$index1];
StrongBox<object> closure_loc$M = frame.Closure[$indexM];
try {
… loc$1 = value …
… closure_loc$1.Value = (object)value;
… return frame.Goto(labelIndex, value) // for each goto label (value), where label is outside loop
} finally {
// write back
Frame.Data[$index1] = (object)loc$1;
}
return $breakOffset;
}
When the lambda is ready the EnterLoopInstruction is replaced by a CompiledLoopInstruction that holds on a delegate to the compiled lambda and calls it upon execution.
Perf impact
The interpreter thruput with disabled compilation is about 5% worse on Pystone with this change. About 1% amounts for tracking interpreted stack chain the rest is probably due to the more expensive try-finally blocks (continuation stack is allocated, continuations are pushed/popped on entry/exit to try and finally blocks, etc.).
–X:NoAdaptiveCompilation is now better than adaptive compilation only by 4-7% (for compilation threshold 2 and 32, respectively), it used to be about 4 times better.
Misc
Special cases adaptive compilation for CompilationThreshold 0 and 1. In both cases the compilation is synchronous. This allows us to easily test and debug loop compiler and lambda compiler.
Implements instruction provider for FinallyFlowControlExpression – the interpreter handles jumps from finally directly, so we don’t need to rewrite the tree.
FlowControlRewriter should reduce all extensible nodes within the tree. It might miss some goto expressions or finally clauses otherwise (e.g. { label: try { REDUCIBLE } finally { REDUCIBLE; } }, where any of the REDUCIBLEs reduces to “goto label”.
Ruby, Python:
CatchBlock defines a scope for its exception variable, which wasn’t taken into account in Python and Ruby AST generators and rewriters. They declared the variable in the containing block duplicating the variable definition and depending on variable shadowing. Removes the duplicate declarations.
Removes “compileLoops” argument passed to LightCompile. All loops are adaptively compiled now.
Python
Increases test_memory limit to 18k since the loop is adaptively compiled now. We might want to disable adaptive compilation during this test.
Disables test_dict.py run:test_container_iterator. Filed bug: http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=25419
Disables test_traceback.py run:test_throw_while_yield. Filed bug: http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=25428
Ruby:
Fixes mangling of “me” name.
Disabled one test case in core/kernel/caller_spec.rb. The behavior that made this test accidentally pass was incorrect.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1301388
User: tomat
Checked in by: merllab
Date: Wednesday, December 02, 2009 5:12:48 PM
Comment:
Fixes Time#strftime, which makes all TzInfo tests pass.
Fixes Array#reject and removes a guard from corresponding spec.
Cleans up a few specs.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1300588
User: tomat
Checked in by: merllab
Date: Wednesday, December 02, 2009 11:26:38 AM
Comment:
DLR:
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3183: OutAttribute on parameters whose type is not ByRef should be ignored. The attribute is only used by native marshaller.
Removes dead and duplicate code (various reflection related helpers) and moves them to ReflectionUtils or TypeUtils.
Fixes http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=957.
Removes non-null restriction on the instance parameter of an extension method - C# allows to call the extension method on null value:
public static class Ext {
public static bool IsNull(this object value) {
return value == null;
}
}
public static void F(object o) {
Console.WriteLine(o.IsNull());
}
public static void Main() {
F(null);
}
We also didn’t recognize extension methods correctly if they are compiled by desktop C# 3.0 (our IsExtension method only detected those that are compiled by us and thus use ExtensionAttribute in ExtensionAttribute.dll). This causes binding to extension methods to behave differently on desktop CLR from Silverlight. The fix is to use ExtensionAttribute from System.Core v3.5 assembly if it is available at runtime.
Ruby:
Fixes
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2827: adds ToString, GetHashCode, GetType methods on NilClass.
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2914
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2913
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3068
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2962
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1299354
User: tomat
Checked in by: merllab
Date: Tuesday, December 01, 2009 7:09:12 PM
Comment:
Implements missing super-call features (super with implicit arguments in eval), fixes bugs, improves super site caching and removes helpers with “out” parameters that were forcing the interpreter to compile the rules.
Also removes “hacks.rb” and test directory from Libs since the workarounds implemented there are needed anymore.
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1290543
User: tomat
Checked in by: merllab
Date: Monday, November 30, 2009 11:26:46 AM
Comment:
(Time7)
Adds NoUnderlyingType to ModuleRestrictions.
- If set, the members of the underlying CLR type are not accessible from Ruby (not even via clr_new, etc.)
- A Ruby library class/module can either extend an existing CLR type or be self-contained. A self-contained class/module has ModuleRestriction.NoUnderlyingType set by default.
Separates Ruby method implementations on RubyTime to a separate class so that we can expose RubyTime underlying CLR type.
Fixes bugs and Time related specs:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2912
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2217
Time zones
It seems that MRI is using CRT zone API (_tzset) on Windows. That API (http://msdn.microsoft.com/en-us/library/90s5c885(VS.80).aspx) is buggy and also different from Unix API based on TZ environment variable. The only thing _tzset does is that it parses TZ environment variable value using format <time-zone-name>< zone offset hh:mm:ss> and stores the parsed values into global variables. It doesn’t look up time zone name in any database (registry) or even allow to specify DST offset and rule (unlike POSIX TZ variable). As a consequence MRI on Windows doesn’t correctly implement daylight saving related API (Time#dst?). If the offset is not specified in TZ variable we don’t know anything about the zone and thus no zone related methods work correctly. And indeed the specs are failing. Besides, MRI doesn’t update the current time zone if TZ environment variable is changed at runtime (it only parses it once when the process is initialized) - http://redmine.ruby-lang.org/issues/show/1972.
This change makes IronRuby recognize TZ environment variable and update the current time zone whenever ENV[“TZ”] is assigned to. Current limitations:
1) TZ variable needs to define zone offset. We don’t do time zone name lookup and so only time zone name or abbreviation is not sufficient. If the offset is not specified we use the default time zone provided by OS and report a warning.
2) Time#dst? always uses the default OS zone, not the one that is specified by TZ variable. A warning is reported if the current zone comes from TZ variable.
Fixes Time specs that were relying on Unix specific commands.
Fixes time related bugs in YAML and a bug in the YAML scanner:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2044
Enables subclassing socket classes, fixes:
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3196
There is a bug in tzinfo gem:
C:\M0\Merlin\External.LCA_RESTRICTED\Languages\Ruby\ruby-1.8.6p368\lib\ruby\gems\1.8\gems\tzinfo-0.3.15\lib\tzinfo\time_or_datetime.rb
Line #43 is missing usec parameter:
@time = Time.utc(@time.year, @time.mon, @time.mday, @time.hour, @time.min, @time.sec, @time.usec) unless @time.zone == 'UTC'
-----------------------------------------------------------------------------------------------------------------------------------
Changeset: 1286631
User: tomat
Checked in by: merllab
Date: Tuesday, November 24, 2009 6:30:19 PM
Comment:
Enables FxCop rules in Globalization group for Ruby assemblies and fixes all violations.
Shri's fix to ConditionalVariable: http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3151.
ironruby-0.9.3 (RC1) 2009-11-20
-------------------------------
Here are all the commits for this release:
http://github.com/ironruby/ironruby/commits/v0.9.3
http://github.com/ironruby/ironruby/commits/v1.0-rc1
Up until the first commit after the last release:
http://github.com/ironruby/ironruby/commit/81c509da483590e0995f3bd7e5ac27d0d88ab29c
@ -21,24 +891,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -21,24 +891,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Comment:
Makes Time mutable. It was mapped to System.DateTime which is immutable. However, Time#utc mutates the instance. So now we define a new type Time with a _dateTime field. The core\shared\gmtime test is not enabled because it expects that modifying ENV['TZ'] at runtime changes the timezone, which is not supported yet in IronRuby (and MRI too)
(Shelveset: time;REDMOND\sborde | SNAP CheckinId: 9875)
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/ClrTests.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/TimeOps.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Zlib/zlib.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/Attributes.cs
add $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Tests/Interop/net/bcl/system_datetime/conversion_spec.rb
delete $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Tests/Interop/net/bcl/system_datetime/instantiation_spec.rb;X13092237
delete $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Tests/Interop/net/bcl/system_datetime/mapping_spec.rb;X13092237
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
---------------------------------------------------------------------------------------------------
Changeset: 1281837
User: jdeville
@ -48,17 +900,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -48,17 +900,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Comment:
Updates IronRuby to 0.9.3
(Shelveset: version0.9.3;REDMOND\jdeville | SNAP CheckinId: 9872)
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Scripts/Wix/IronRuby.wxs
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
---------------------------------------------------------------------------------------------------
Changeset: 1277176
User: sborde
@ -69,20 +910,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -69,20 +910,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Implements Kernel.srand with no parameters
Changes RubyRegex to not clone the input string when being used for String#scan, and to share the cloned string when possible. Without the sharing, you could cause OutOfMemoryException.
(Shelveset: regex;REDMOND\sborde | SNAP CheckinId: 9855)
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/MutableStringOps.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Builtins/MatchData.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyRegex.cs
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
---------------------------------------------------------------------------------------------------
Changeset: 1265896
User: jdeville
@ -91,14 +918,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -91,14 +918,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Comment:
Fixing transformation paths for .exe.config. doesnt' affect snap.
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/context.rb
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
---------------------------------------------------------------------------------------------------
Changeset: 1264343
User: merllab
@ -121,25 +940,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -121,25 +940,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Reduces the number of instruction instances that are executed at least once during the run of “mspec ci core” from 1,274,454 to 280,684.
(Shelveset: InstructionRefactoring;REDMOND\tomat | SNAP CheckinId: 9786)
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/RubyTests.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/IronRuby.Tests/Runtime/InterpreterTests.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Compiler/Ast/Instructions/FrameTracking.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Hosting/RubyOptionsParser.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyScriptCode.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/MethodDispatcher.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/RubyMetaBinder.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Runtime/Conversions/Converter.Generated.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Scripts/CodeGenerator.rb
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
---------------------------------------------------------------------------------------------------
Changeset: 1250989
User: merllab
@ -148,18 +948,6 @@ ironruby-0.9.3 (RC1) 2009-11-20 @@ -148,18 +948,6 @@ ironruby-0.9.3 (RC1) 2009-11-20
Comment:
(sborde) Fixes for double formatting on non-English culture
(Shelveset: cul;REDMOND\sborde | SNAP CheckinId: 9744)
Items:
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/BigDecimal/BigDecimal.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/StringFormatter.cs
edit $/Dev10/feature/vs_langs01_s/Merlin/Main/Languages/Ruby/Ruby/Hosting/RubyOptionsParser.cs
Check-in Notes:
Code Reviewer:
Performance Reviewer:
Security Reviewer:
ironruby-0.9.2.0 - 2009-10-29

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.Yaml.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.Libraries.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/IronRuby.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Dynamic.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Core.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Debugging.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.ExtensionAttribute.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.Helpers.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/Microsoft.Scripting.dll

Binary file not shown.

BIN
src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe

Binary file not shown.

6
src/AddIns/BackendBindings/Ruby/IronRuby/bin/ir.exe.config

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<configuration>
<configSections>
<section name='microsoft.scripting' requirePermission='false' type='Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.6.20, Culture=neutral, PublicKeyToken=31bf3856ad364e35'/>
<section name='microsoft.scripting' requirePermission='false' type='Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'/>
</configSections>
<microsoft.scripting>
<languages>
<language extensions='.py' displayName='IronPython 2.6' type='IronPython.Runtime.PythonContext, IronPython, Version=2.6.10920.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronPython;Python;py'/>
<language extensions='.rb' displayName='IronRuby' type='IronRuby.Runtime.RubyContext, IronRuby, Version=0.9.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronRuby;Ruby;rb'/>
<language extensions='.py' displayName='IronPython 2.6.1' type='IronPython.Runtime.PythonContext, IronPython, Version=2.6.10920.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronPython;Python;py'/>
<language extensions='.rb' displayName='IronRuby' type='IronRuby.Runtime.RubyContext, IronRuby, Version=0.9.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronRuby;Ruby;rb'/>
</languages>
<options>

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.addin

@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
<Runtime>
<Import assembly=":ICSharpCode.SharpDevelop"/>
<Import assembly="$ICSharpCode.FormsDesigner/FormsDesigner.dll"/>
<Import assembly="IronRuby.Libraries.dll"/>
<Import assembly="RubyBinding.dll"/>
</Runtime>

3
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/RubyBinding.csproj

@ -65,9 +65,6 @@ @@ -65,9 +65,6 @@
<Reference Include="Microsoft.Scripting.Debugging">
<HintPath>..\..\IronRuby\bin\Microsoft.Scripting.Debugging.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Scripting.Helpers">
<HintPath>..\..\IronRuby\bin\Microsoft.Scripting.Helpers.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>

14
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyAstWalker.cs

@ -89,7 +89,7 @@ namespace ICSharpCode.RubyBinding @@ -89,7 +89,7 @@ namespace ICSharpCode.RubyBinding
return requireString;
}
protected override void Walk(ModuleDeclaration node)
protected override void Walk(ModuleDefinition node)
{
globalClass = CreateClass(node);
@ -98,7 +98,7 @@ namespace ICSharpCode.RubyBinding @@ -98,7 +98,7 @@ namespace ICSharpCode.RubyBinding
currentClass = null;
}
protected override void Walk(ClassDeclaration node)
protected override void Walk(ClassDefinition node)
{
DefaultClass c = CreateClass(node);
AddBaseType(c, node);
@ -109,7 +109,7 @@ namespace ICSharpCode.RubyBinding @@ -109,7 +109,7 @@ namespace ICSharpCode.RubyBinding
currentClass = null;
}
protected override void Walk(MethodDeclaration node)
protected override void Walk(MethodDefinition node)
{
IClass c = currentClass;
if (currentClass == null) {
@ -146,7 +146,7 @@ namespace ICSharpCode.RubyBinding @@ -146,7 +146,7 @@ namespace ICSharpCode.RubyBinding
/// <summary>
/// Gets the region of a method. This does not include the body.
/// </summary>
DomRegion GetMethodRegion(MethodDeclaration node)
DomRegion GetMethodRegion(MethodDefinition node)
{
return new DomRegion(node.Location.Start.Line, node.Location.Start.Column, node.Parameters.Location.End.Line, node.Parameters.Location.End.Column);
}
@ -216,7 +216,7 @@ namespace ICSharpCode.RubyBinding @@ -216,7 +216,7 @@ namespace ICSharpCode.RubyBinding
}
}
DefaultClass CreateClass(ModuleDeclaration node)
DefaultClass CreateClass(ModuleDefinition node)
{
DefaultClass c = new DefaultClass(compilationUnit, node.QualifiedName.Name);
c.Region = GetRegion(node.Location);
@ -228,9 +228,9 @@ namespace ICSharpCode.RubyBinding @@ -228,9 +228,9 @@ namespace ICSharpCode.RubyBinding
/// <summary>
/// Adds the named base type to the class.
/// </summary>
void AddBaseType(IClass c, ClassDeclaration classDec)
void AddBaseType(IClass c, ClassDefinition classDef)
{
string name = RubyComponentWalker.GetBaseClassName(classDec);
string name = RubyComponentWalker.GetBaseClassName(classDef);
c.BaseTypes.Add(new SearchClassReturnType(c.ProjectContent, c, 0, 0, name, 0));
}

16
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/RubyComponentWalker.cs

@ -34,7 +34,7 @@ namespace ICSharpCode.RubyBinding @@ -34,7 +34,7 @@ namespace ICSharpCode.RubyBinding
IComponentCreator componentCreator;
string componentName = String.Empty;
RubyCodeDeserializer deserializer;
ClassDeclaration classDeclaration;
ClassDefinition classDefinition;
public RubyComponentWalker(IComponentCreator componentCreator)
{
@ -61,23 +61,23 @@ namespace ICSharpCode.RubyBinding @@ -61,23 +61,23 @@ namespace ICSharpCode.RubyBinding
/// <summary>
/// Gets the fully qualified name of the base class.
/// </summary>
public static string GetBaseClassName(ClassDeclaration classDeclaration)
public static string GetBaseClassName(ClassDefinition classDefinition)
{
ConstantVariable variable = classDeclaration.SuperClass as ConstantVariable;
ConstantVariable variable = classDefinition.SuperClass as ConstantVariable;
if (variable != null) {
return RubyControlFieldExpression.GetQualifiedName(variable);
}
return String.Empty;
}
protected override void Walk(ClassDeclaration node)
protected override void Walk(ClassDefinition node)
{
classDeclaration = node;
classDefinition = node;
componentName = node.QualifiedName.Name;
base.Walk(node);
}
protected override void Walk(MethodDeclaration node)
protected override void Walk(MethodDefinition node)
{
if (IsInitializeComponentMethod(node)) {
Type type = GetComponentType();
@ -213,7 +213,7 @@ namespace ICSharpCode.RubyBinding @@ -213,7 +213,7 @@ namespace ICSharpCode.RubyBinding
return null;
}
static bool IsInitializeComponentMethod(MethodDeclaration node)
static bool IsInitializeComponentMethod(MethodDefinition node)
{
string name = node.Name.ToLowerInvariant();
return name == "initializecomponent" || name == "initializecomponents";
@ -224,7 +224,7 @@ namespace ICSharpCode.RubyBinding @@ -224,7 +224,7 @@ namespace ICSharpCode.RubyBinding
/// </summary>
Type GetComponentType()
{
string baseClass = GetBaseClassName(classDeclaration);
string baseClass = GetBaseClassName(classDefinition);
Type type = componentCreator.GetType(baseClass);
if (type != null) {
return type;

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/ir.exe.config

@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<configuration>
<configSections>
<section name='microsoft.scripting' requirePermission='false' type='Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=0.9.6.20, Culture=neutral, PublicKeyToken=31bf3856ad364e35'/>
<section name='microsoft.scripting' requirePermission='false' type='Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'/>
</configSections>
<microsoft.scripting>
<languages>
<language extensions='.py' displayName='IronPython 2.6' type='IronPython.Runtime.PythonContext, IronPython, Version=2.6.10920.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronPython;Python;py'/>
<language extensions='.rb' displayName='IronRuby' type='IronRuby.Runtime.RubyContext, IronRuby, Version=0.9.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronRuby;Ruby;rb'/>
<language extensions='.py' displayName='IronPython 2.6.1' type='IronPython.Runtime.PythonContext, IronPython, Version=2.6.10920.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronPython;Python;py'/>
<language extensions='.rb' displayName='IronRuby' type='IronRuby.Runtime.RubyContext, IronRuby, Version=0.9.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' names='IronRuby;Ruby;rb'/>
</languages>
<options>

10
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Designer/RubyBaseClassTests.cs

@ -31,7 +31,7 @@ namespace RubyBinding.Tests.Designer @@ -31,7 +31,7 @@ namespace RubyBinding.Tests.Designer
" end\r\n" +
"end";
ClassDeclaration classDef = GetClassDeclaration(code);
ClassDefinition classDef = GetClassDefinition(code);
Assert.AreEqual("System.Windows.Forms.Form", RubyComponentWalker.GetBaseClassName(classDef));
}
@ -44,7 +44,7 @@ namespace RubyBinding.Tests.Designer @@ -44,7 +44,7 @@ namespace RubyBinding.Tests.Designer
" end\r\n" +
"end";
ClassDeclaration classDef = GetClassDeclaration(code);
ClassDefinition classDef = GetClassDefinition(code);
Assert.AreEqual(String.Empty, RubyComponentWalker.GetBaseClassName(classDef));
}
@ -64,16 +64,16 @@ namespace RubyBinding.Tests.Designer @@ -64,16 +64,16 @@ namespace RubyBinding.Tests.Designer
" end\r\n" +
"end";
ClassDeclaration classDef = GetClassDeclaration(code);
ClassDefinition classDef = GetClassDefinition(code);
Assert.AreEqual("Form", RubyComponentWalker.GetBaseClassName(classDef));
}
ClassDeclaration GetClassDeclaration(string code)
ClassDefinition GetClassDefinition(string code)
{
RubyParser parser = new RubyParser();
SourceUnitTree unit = parser.CreateAst(@"test.rb", new StringTextBuffer(code));
return unit.Statements.First as ClassDeclaration;
return unit.Statements.First as ClassDefinition;
}
}
}

7
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeDiscoveryService.cs

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.IO;
using System.Reflection;
using ICSharpCode.Core;
@ -48,7 +49,13 @@ namespace ICSharpCode.FormsDesigner.Services @@ -48,7 +49,13 @@ namespace ICSharpCode.FormsDesigner.Services
continue;
}
}
try {
AddDerivedTypes(baseType, asm, types);
} catch (FileNotFoundException) {
} catch (FileLoadException) {
} catch (BadImageFormatException) {
// ignore assembly load errors
}
}
LoggingService.Debug("TypeDiscoveryService returns " + types.Count + " types");

6
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/TypeResolutionService.cs

@ -417,10 +417,16 @@ namespace ICSharpCode.FormsDesigner.Services @@ -417,10 +417,16 @@ namespace ICSharpCode.FormsDesigner.Services
if (type == null) {
lock (designerAssemblies) {
foreach (Assembly asm in DesignerAssemblies) {
try {
Type t = asm.GetType(name, false);
if (t != null) {
return t;
}
} catch (FileNotFoundException) {
} catch (FileLoadException) {
} catch (BadImageFormatException) {
// ignore assembly load errors
}
}
}
}

2
src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs

@ -72,7 +72,7 @@ namespace Hornung.ResourceToolkit.Gui @@ -72,7 +72,7 @@ namespace Hornung.ResourceToolkit.Gui
this.panel.Dock = DockStyle.Fill;
this.listView = new ListView();
this.ListView.Columns.Add(StringParser.Parse("${res:Hornung.ResourceToolkit.FileName}"), 60);
this.ListView.Columns.Add(StringParser.Parse("${res:Global.FileName}"), 60);
this.ListView.Columns.Add(StringParser.Parse("${res:Hornung.ResourceToolkit.Key}"), 140);
this.ListView.Columns.Add(StringParser.Parse("${res:Hornung.ResourceToolkit.Value}"), 140);
this.ListView.View = View.Details;

45
src/AddIns/Misc/SubversionAddIn/Project/Resources/TortoiseSvnNotFoundForm.xfrm

@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
<Components version="1.0">
<System.Windows.Forms.Form>
<Name value="TortoiseSvnNotFoundForm" />
<FormBorderStyle value="SizableToolWindow" />
<AcceptButton value="okButton" />
<MinimizeBox value="False" />
<StartPosition value="CenterParent" />
<MinimumSize value="365, 147" />
<Text value="SharpDevelop" />
<MaximizeBox value="False" />
<ClientSize value="{Width=357, Height=121}" />
<Controls>
<System.Windows.Forms.PictureBox>
<Name value="iconPictureBox" />
<Location value="10, 11" />
<Size value="32, 32" />
</System.Windows.Forms.PictureBox>
<System.Windows.Forms.Button>
<Name value="okButton" />
<DialogResult value="OK" />
<Location value="149, 86" />
<Text value="${res:Global.OKButtonText}" />
<Anchor value="Bottom" />
<UseVisualStyleBackColor value="True" />
<Size value="89, 23" />
<TabIndex value="1" />
</System.Windows.Forms.Button>
<System.Windows.Forms.LinkLabel>
<Name value="linkLabel" />
<Size value="114, 26" />
<TabIndex value="1" />
<Text value="tortoisesvn.tigris.org" />
<Location value="12, 86" />
<Anchor value="Bottom, Left" />
</System.Windows.Forms.LinkLabel>
<System.Windows.Forms.Label>
<Name value="messageLabel" />
<Location value="48, 11" />
<Anchor value="Top, Bottom, Left, Right" />
<Size value="302, 68" />
<TabIndex value="2" />
</System.Windows.Forms.Label>
</Controls>
</System.Windows.Forms.Form>
</Components>

19
src/AddIns/Misc/SubversionAddIn/Project/Src/Gui/TortoiseSvnNotFoundForm.cs

@ -11,28 +11,15 @@ using System.Windows.Forms; @@ -11,28 +11,15 @@ using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
using ICSharpCode.SharpDevelop.Gui.XmlForms;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.Svn
{
public class TortoiseSvnNotFoundForm : BaseSharpDevelopForm
public class TortoiseSvnNotFoundForm : ToolNotFoundDialog
{
public TortoiseSvnNotFoundForm()
: base(StringParser.Parse("${res:AddIns.Subversion.TortoiseSVNRequired}"), "http://tortoisesvn.net/", null)
{
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("ICSharpCode.Svn.Resources.TortoiseSvnNotFoundForm.xfrm"));
((Label)ControlDictionary["messageLabel"]).Text = StringParser.Parse("${res:AddIns.Subversion.TortoiseSVNRequired}");
((PictureBox)ControlDictionary["iconPictureBox"]).Image = WinFormsResourceService.GetBitmap("Icons.32x32.Information");
((LinkLabel)ControlDictionary["linkLabel"]).Click += LinkLabelClicked;
}
void LinkLabelClicked(object sender, EventArgs e)
{
try {
Process.Start("http://tortoisesvn.tigris.org");
} catch (Exception ex) {
LoggingService.Warn("Cannot start http://tortoisesvn.tigris.org", ex);
}
}
}
}

1
src/AddIns/Misc/SubversionAddIn/Project/SubversionAddIn.csproj

@ -82,7 +82,6 @@ @@ -82,7 +82,6 @@
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs">
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<EmbeddedResource Include="Resources\TortoiseSvnNotFoundForm.xfrm" />
<Compile Include="Src\Gui\HistoryViewDisplayBinding\DiffPanel.Designer.cs">
<DependentUpon>DiffPanel.cs</DependentUpon>
</Compile>

4
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -187,6 +187,10 @@ @@ -187,6 +187,10 @@
<DependentUpon>SelectCulturePanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\Gui\Dialogs\ToolNotFoundDialog.cs" />
<Compile Include="Src\Gui\Dialogs\ToolNotFoundDialog.Designer.cs">
<DependentUpon>ToolNotFoundDialog.cs</DependentUpon>
</Compile>
<Compile Include="Src\Gui\Dialogs\OptionPanels\XmlFormsOptionPanel.cs" />
<Compile Include="Src\Gui\Dialogs\SolutionConfiguration\AddNewConfigurationDialog.cs" />
<Compile Include="Src\Gui\Dialogs\SolutionConfiguration\AddNewConfigurationDialog.Designer.cs">

121
src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs

@ -8,10 +8,13 @@ @@ -8,10 +8,13 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Xml;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project.Dialogs;
using Microsoft.Win32;
namespace ICSharpCode.SharpDevelop.Project.Commands
{
@ -46,41 +49,131 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -46,41 +49,131 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
public class GenerateProjectDocumentation : AbstractMenuCommand
{
static string FindSHFB()
{
string command = Registry.GetValue(@"HKEY_CLASSES_ROOT\Sandcastle Help File Builder Project\shell\open\command", null, string.Empty) as string;
return ExtractExecutableFromCommand(command);
}
static string ExtractExecutableFromCommand(string command)
{
if (string.IsNullOrEmpty(command))
return null;
command = command.Trim();
if (string.IsNullOrEmpty(command))
return null;
if (command[0] == '"') {
// "program" %1
int pos = command.IndexOf('"', 1);
if (pos < 0)
return null;
return command.Substring(1, pos - 1);
} else {
// program %1
int pos = command.IndexOf(' ');
if (pos < 0)
return command;
else
return command.Substring(0, pos);
}
}
public override void Run()
{
CompilableProject project = ProjectService.CurrentProject as CompilableProject;
if (project == null) {
return;
}
string assembly = project.OutputAssemblyFullPath;
if (!File.Exists(assembly)) {
MessageService.ShowMessage("${res:ProjectComponent.ContextMenu.GenerateDocumentation.ProjectNeedsToBeCompiled}");
string sandcastleHelpFileBuilderPath = FindSHFB();
if (sandcastleHelpFileBuilderPath == null || !File.Exists(sandcastleHelpFileBuilderPath)) {
using (ToolNotFoundDialog dlg = new ToolNotFoundDialog(
StringParser.Parse("${res:ProjectComponent.ContextMenu.GenerateDocumentation.SHFBNotFound}"),
"http://www.codeplex.com/SHFB/", null))
{
dlg.ShowDialog(WorkbenchSingleton.MainWin32Window);
}
return;
}
string assembly = project.OutputAssemblyFullPath;
string xmlDocFile = project.DocumentationFileFullPath;
if (xmlDocFile == null) {
MessageService.ShowMessage("${res:ProjectComponent.ContextMenu.GenerateDocumentation.NeedToEditBuildOptions}");
return;
}
if (!File.Exists(assembly)) {
MessageService.ShowMessage("${res:ProjectComponent.ContextMenu.GenerateDocumentation.ProjectNeedsToBeCompiled}");
return;
}
if (!File.Exists(xmlDocFile)) {
MessageService.ShowMessage("${res:ProjectComponent.ContextMenu.GenerateDocumentation.ProjectNeedsToBeCompiled2}");
return;
}
string sandcastleHelpFileBuilderProjectFile = Path.ChangeExtension(assembly, ".shfb");
string sandcastleHelpFileBuilderProjectFile = Path.ChangeExtension(project.FileName, ".shfbproj");
if (!File.Exists(sandcastleHelpFileBuilderProjectFile)) {
using (StreamWriter sw = File.CreateText(sandcastleHelpFileBuilderProjectFile)) {
sw.WriteLine("<project schemaVersion=\"1.4.0.2\">");
sw.WriteLine(" <assemblies>");
sw.WriteLine(" <assembly assemblyPath=\""+ assembly +"\" xmlCommentsPath=\"" + xmlDocFile + "\" />");
sw.WriteLine(" </assemblies>");
sw.WriteLine("</project>");
}
using (XmlTextWriter w = new XmlTextWriter(sandcastleHelpFileBuilderProjectFile, Encoding.UTF8)) {
w.Formatting = Formatting.Indented;
const string ns = "http://schemas.microsoft.com/developer/msbuild/2003";
w.WriteStartElement("Project", ns);
w.WriteAttributeString("DefaultTargets", "Build");
w.WriteAttributeString("ToolsVersion", "3.5");
w.WriteStartElement("PropertyGroup", ns);
w.WriteComment("The configuration and platform will be used to determine which\n" +
"assemblies to include from solution and project documentation\n" +
"sources");
w.WriteStartElement("Configuration", ns);
w.WriteAttributeString("Condition", " '$(Configuration)' == '' ");
w.WriteValue("Debug");
w.WriteEndElement(); // </Configuration>
w.WriteStartElement("Platform", ns);
w.WriteAttributeString("Condition", " '$(Platform)' == '' ");
w.WriteValue("AnyCPU");
w.WriteEndElement(); // </AnyCPU>
w.WriteElementString("SchemaVersion", ns, "2.0");
w.WriteElementString("ProjectGuid", ns, Guid.NewGuid().ToString("B"));
w.WriteElementString("SHFBSchemaVersion", ns, "1.8.0.3");
w.WriteElementString("AssemblyName", ns, "Documentation");
w.WriteElementString("RootNamespace", ns, "Documentation");
w.WriteElementString("Name", ns, "Documentation");
w.WriteElementString("OutputPath", ns, @".\Help\");
w.WriteElementString("HtmlHelpName", ns, "Documentation");
w.WriteStartElement("DocumentationSources", ns);
w.WriteStartElement("DocumentationSource", "");
w.WriteAttributeString("sourceFile", FileUtility.GetRelativePath(Path.GetDirectoryName(sandcastleHelpFileBuilderProjectFile), project.FileName));
w.WriteEndElement(); // </DocumentationSource>
w.WriteEndElement(); // </DocumentationSources>
w.WriteEndElement(); // </PropertyGrup>
w.WriteComment("There are no properties for these groups. AnyCPU needs to appear in\n" +
"order for Visual Studio to perform the build. The others are optional\n" +
"common platform types that may appear.");
string[] confPlatList = {
"Debug|AnyCPU", "Release|AnyCPU", "Debug|x86", "Release|x86", "Debug|x64", "Release|x64", "Debug|Win32", "Release|Win32"
};
foreach (string confPlat in confPlatList) {
w.WriteStartElement("PropertyGroup", ns);
w.WriteAttributeString("Condition", " '$(Configuration)|$(Platform)' == '" + confPlat + "' ");
w.WriteEndElement(); // </PropertyGrup>
}
string sandcastleHelpFileBuilderDirectory = Path.Combine(FileUtility.ApplicationRootPath, "bin/Tools/SHFB");
w.WriteComment("Import the SHFB build targets");
w.WriteStartElement("Import", ns);
w.WriteAttributeString("Project", @"$(SHFBROOT)\SandcastleHelpFileBuilder.targets");
w.WriteEndElement(); // </Import>
w.WriteEndElement(); // </Project>
}
}
ProcessStartInfo psi = new ProcessStartInfo(Path.Combine(sandcastleHelpFileBuilderDirectory, "SandcastleBuilderGUI.exe"), '"' + sandcastleHelpFileBuilderProjectFile + '"');
psi.WorkingDirectory = sandcastleHelpFileBuilderDirectory;
ProcessStartInfo psi = new ProcessStartInfo(sandcastleHelpFileBuilderPath, '"' + sandcastleHelpFileBuilderProjectFile + '"');
psi.WorkingDirectory = Path.GetDirectoryName(sandcastleHelpFileBuilderPath);
psi.UseShellExecute = false;
Process.Start(psi);
}

113
src/Main/Base/Project/Src/Gui/Dialogs/ToolNotFoundDialog.Designer.cs generated

@ -0,0 +1,113 @@ @@ -0,0 +1,113 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
namespace ICSharpCode.SharpDevelop.Gui
{
partial class ToolNotFoundDialog
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
this.pictureBox = new System.Windows.Forms.PictureBox();
this.descriptionLabel = new System.Windows.Forms.Label();
this.linkLabel = new System.Windows.Forms.LinkLabel();
this.okButton = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
this.SuspendLayout();
//
// pictureBox
//
this.pictureBox.Location = new System.Drawing.Point(12, 12);
this.pictureBox.Name = "pictureBox";
this.pictureBox.Size = new System.Drawing.Size(32, 32);
this.pictureBox.TabIndex = 0;
this.pictureBox.TabStop = false;
//
// descriptionLabel
//
this.descriptionLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.descriptionLabel.Location = new System.Drawing.Point(50, 9);
this.descriptionLabel.Name = "descriptionLabel";
this.descriptionLabel.Size = new System.Drawing.Size(282, 91);
this.descriptionLabel.TabIndex = 1;
this.descriptionLabel.Text = "description";
//
// linkLabel
//
this.linkLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkLabel.Location = new System.Drawing.Point(12, 102);
this.linkLabel.Name = "linkLabel";
this.linkLabel.Size = new System.Drawing.Size(239, 23);
this.linkLabel.TabIndex = 2;
this.linkLabel.TabStop = true;
this.linkLabel.Text = "URL";
this.linkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabelLinkClicked);
//
// okButton
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK;
this.okButton.Location = new System.Drawing.Point(257, 102);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(75, 23);
this.okButton.TabIndex = 0;
this.okButton.Text = "OK";
this.okButton.UseVisualStyleBackColor = true;
//
// ToolNotFoundDialog
//
this.AcceptButton = this.okButton;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(344, 134);
this.Controls.Add(this.okButton);
this.Controls.Add(this.linkLabel);
this.Controls.Add(this.descriptionLabel);
this.Controls.Add(this.pictureBox);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(360, 140);
this.Name = "ToolNotFoundDialog";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "ToolNotFoundDialog";
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit();
this.ResumeLayout(false);
}
private System.Windows.Forms.LinkLabel linkLabel;
private System.Windows.Forms.Button okButton;
private System.Windows.Forms.Label descriptionLabel;
private System.Windows.Forms.PictureBox pictureBox;
}
}

47
src/Main/Base/Project/Src/Gui/Dialogs/ToolNotFoundDialog.cs

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
namespace ICSharpCode.SharpDevelop.Gui
{
public partial class ToolNotFoundDialog : Form
{
/// <summary>
/// Creates a new instance of the ToolNotFoundDialog.
/// </summary>
/// <param name="description">The description text</param>
/// <param name="linkTarget">The link target (with leading http://)</param>
/// <param name="icon">32x32 icon to display next to the description. May be null.</param>
public ToolNotFoundDialog(string description, string linkTarget, Image icon)
{
// The InitializeComponent() call is required for Windows Forms designer support.
InitializeComponent();
descriptionLabel.Text = description;
linkLabel.Text = linkTarget;
pictureBox.Image = icon ?? WinFormsResourceService.GetBitmap("Icons.32x32.Information");
this.Text = StringParser.Parse("${res:ICSharpCode.SharpDevelop.Gui.Dialogs.ToolNotFoundDialog.Title}");
okButton.Text = StringParser.Parse("${res:Global.OKButtonText}");
}
void LinkLabelLinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
try {
Process.Start(linkLabel.Text);
} catch (Exception ex) {
LoggingService.Warn("Cannot start " + linkLabel.Text, ex);
}
}
}
}

9
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -516,7 +516,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -516,7 +516,7 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
public ProjectBuildOptions CreateProjectBuildOptions(BuildOptions options, bool isRootBuildable)
public virtual ProjectBuildOptions CreateProjectBuildOptions(BuildOptions options, bool isRootBuildable)
{
if (options == null)
throw new ArgumentNullException("options");
@ -530,14 +530,17 @@ namespace ICSharpCode.SharpDevelop.Project @@ -530,14 +530,17 @@ namespace ICSharpCode.SharpDevelop.Project
projectOptions.Platform = matching.Platform;
}
}
// fall back to solution config if we don't find any entries for the project
if (string.IsNullOrEmpty(projectOptions.Configuration))
projectOptions.Configuration = options.SolutionConfiguration;
if (string.IsNullOrEmpty(projectOptions.Platform))
projectOptions.Platform = options.SolutionPlatform;
// copy properties to project options
options.GlobalAdditionalProperties.ForEach(projectOptions.Properties.Add);
// copy global properties to project options
foreach (var pair in options.GlobalAdditionalProperties)
projectOptions.Properties[pair.Key] = pair.Value;
if (isRootBuildable) {
// copy properties for root project to project options
foreach (var pair in options.ProjectAdditionalProperties) {
projectOptions.Properties[pair.Key] = pair.Value;
}

4
src/Main/Base/Project/Src/Project/IProject.cs

@ -7,8 +7,10 @@ @@ -7,8 +7,10 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Xml;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;

9
src/Main/Base/Project/Src/Project/Items/FileProjectItem.cs

@ -62,6 +62,15 @@ namespace ICSharpCode.SharpDevelop.Project @@ -62,6 +62,15 @@ namespace ICSharpCode.SharpDevelop.Project
}
}
[LocalizedProperty("${res:Global.FileName}",
Description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.FileName.Description}")]
[Browsable(true)]
[ReadOnly(true)]
public override string FileName {
get { return base.FileName; }
set { base.FileName = value; }
}
sealed class BuildActionEditor : DropDownEditor
{
protected override Control CreateDropDownControl(ITypeDescriptorContext context, IWindowsFormsEditorService editorService)

41
src/Main/Base/Project/Src/Project/MSBuildBasedProject.cs

@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
// <version>$Revision$</version>
// </file>
using ICSharpCode.SharpDevelop.Project.Converter;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@ -13,9 +12,12 @@ using System.ComponentModel; @@ -13,9 +12,12 @@ using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Xml;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project.Converter;
using Microsoft.Build.Construction;
using Microsoft.Build.Evaluation;
using MSBuild = Microsoft.Build.Evaluation;
@ -1068,6 +1070,43 @@ namespace ICSharpCode.SharpDevelop.Project @@ -1068,6 +1070,43 @@ namespace ICSharpCode.SharpDevelop.Project
{
MSBuildEngine.StartBuild(this, buildServices, options, feedbackSink, MSBuildEngine.AdditionalTargetFiles);
}
public override ProjectBuildOptions CreateProjectBuildOptions(BuildOptions options, bool isRootBuildable)
{
ProjectBuildOptions projectOptions = base.CreateProjectBuildOptions(options, isRootBuildable);
Solution solution = this.ParentSolution;
var configMatchings = solution.GetActiveConfigurationsAndPlatformsForProjects(options.SolutionConfiguration, options.SolutionPlatform);
// Find the project configuration, and build an XML string containing all configurations from the solution
StringWriter solutionConfigurationXml = new StringWriter();
using (XmlTextWriter solutionConfigurationWriter = new XmlTextWriter(solutionConfigurationXml)) {
solutionConfigurationWriter.WriteStartElement("SolutionConfiguration");
foreach (var matching in configMatchings) {
solutionConfigurationWriter.WriteStartElement("ProjectConfiguration");
solutionConfigurationWriter.WriteAttributeString("Project", matching.Project.IdGuid);
solutionConfigurationWriter.WriteValue(matching.Configuration + "|" + MSBuildInternals.FixPlatformNameForProject(matching.Platform));
solutionConfigurationWriter.WriteEndElement();
}
solutionConfigurationWriter.WriteEndElement();
}
// Set property for solution configuration. This allows MSBuild to know the correct configuration for project references,
// which is necessary to resolve the referenced project's OutputPath.
projectOptions.Properties["CurrentSolutionConfigurationContents"] = solutionConfigurationXml.ToString();
projectOptions.Properties["SolutionDir"] = EnsureBackslash(solution.Directory);
projectOptions.Properties["SolutionExt"] = ".sln";
projectOptions.Properties["SolutionFileName"] = Path.GetFileName(solution.FileName);
projectOptions.Properties["SolutionPath"] = solution.FileName;
return projectOptions;
}
static string EnsureBackslash(string path)
{
if (path.EndsWith("\\", StringComparison.Ordinal))
return path;
else
return path + "\\";
}
#endregion
#region Loading

18
src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs

@ -51,10 +51,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -51,10 +51,10 @@ namespace ICSharpCode.SharpDevelop.Project
/// </remarks>
public static readonly IDictionary<string, string> MSBuildProperties = new SortedList<string, string> {
{ "SharpDevelopBinPath", SharpDevelopBinPath },
// 'BuildingInsideVisualStudio' tells MSBuild that we took care of building a project's dependencies
// 'BuildingSolutionFile' tells MSBuild that we took care of building a project's dependencies
// before trying to build the project itself. This speeds up compilation because it prevents MSBuild from
// repeatedly looking if a project needs to be rebuilt.
{ "BuildingInsideVisualStudio", "true" }
{ "BuildingSolutionFile", "true" }
};
/// <summary>
@ -179,12 +179,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -179,12 +179,6 @@ namespace ICSharpCode.SharpDevelop.Project
Dictionary<string, string> globalProperties = new Dictionary<string, string>();
MSBuildBasedProject.InitializeMSBuildProjectProperties(globalProperties);
Solution solution = project.ParentSolution;
globalProperties["SolutionDir"] = EnsureBackslash(solution.Directory);
globalProperties["SolutionExt"] = ".sln";
globalProperties["SolutionFileName"] = Path.GetFileName(solution.FileName);
globalProperties["SolutionPath"] = solution.FileName;
foreach (KeyValuePair<string, string> pair in options.Properties) {
LoggingService.Debug("Setting property " + pair.Key + " to '" + pair.Value + "'");
globalProperties[pair.Key] = pair.Value;
@ -321,14 +315,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -321,14 +315,6 @@ namespace ICSharpCode.SharpDevelop.Project
LoggingService.Info("Start job (buildInProcess=" + buildInProcess + "): " + job.ToString());
*/
static string EnsureBackslash(string path)
{
if (path.EndsWith("\\", StringComparison.Ordinal))
return path;
else
return path + "\\";
}
BuildError currentErrorOrWarning;
/// <summary>

25
src/Main/Base/Project/Src/Project/MSBuildInternals.cs

@ -82,6 +82,31 @@ namespace ICSharpCode.SharpDevelop.Project @@ -82,6 +82,31 @@ namespace ICSharpCode.SharpDevelop.Project
}
#endregion
/// <summary>
/// This is a special case in MSBuild we need to take care of.
/// </summary>
public static string FixPlatformNameForProject(string platformName)
{
if (platformName == "Any CPU") {
return "AnyCPU";
} else {
return platformName;
}
}
/// <summary>
/// This is a special case in MSBuild we need to take care of.
/// Opposite of FixPlatformNameForProject
/// </summary>
public static string FixPlatformNameForSolution(string platformName)
{
if (platformName == "AnyCPU") {
return "Any CPU";
} else {
return platformName;
}
}
internal static PropertyStorageLocations GetLocationFromCondition(MSBuild.Construction.ProjectElement element)
{
while (element != null) {

12
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -792,11 +792,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -792,11 +792,7 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary>
static string FixPlatformNameForProject(string platformName)
{
if (platformName == "Any CPU") {
return "AnyCPU";
} else {
return platformName;
}
return MSBuildInternals.FixPlatformNameForProject(platformName);
}
/// <summary>
@ -805,11 +801,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -805,11 +801,7 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary>
static string FixPlatformNameForSolution(string platformName)
{
if (platformName == "AnyCPU") {
return "Any CPU";
} else {
return platformName;
}
return MSBuildInternals.FixPlatformNameForSolution(platformName);
}
internal sealed class ProjectConfigurationPlatformMatching

5
src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

@ -268,7 +268,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -268,7 +268,12 @@ namespace ICSharpCode.SharpDevelop.Project
CommandManager.InvalidateRequerySuggested();
if (openSolution == null)
return;
} catch (IOException ex) {
LoggingService.Warn(ex);
MessageService.ShowError(ex.Message);
return;
} catch (UnauthorizedAccessException ex) {
LoggingService.Warn(ex);
MessageService.ShowError(ex.Message);
return;
}

236
src/Setup/Files.wxs

@ -258,49 +258,6 @@ @@ -258,49 +258,6 @@
<File Source="..\..\bin\Tools\Wix\Bitmaps\Up.ico" Name="Up.ico" Id="Up.ico" />
</Component>
</Directory>
<Directory Id="WixDocFolder" Name="doc">
<Component Guid="2F5AC556-CE36-47EA-AB6C-F8623AA4A6BE" Id="WixDocFiles" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\WiX.chm" Name="WiX.chm" Id="WiX.chm" />
<File Source="..\..\bin\Tools\Wix\doc\wix.xsd" Name="wix.xsd" Id="wix.xsd" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\doc\wixloc.xsd" Name="wixloc.xsd" Id="wixloc.xsd" />
</Component>
<Component Guid="709867E5-F226-4ADF-8204-E77ED2F67EEC" Id="NetFxSchema" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\netfx.xsd" Name="netfx.xsd" Id="netfx.xsd" />
</Component>
<Component Guid="6CF70F72-AB78-4122-BC7F-0CA6B3CC6E97" Id="VSExtensionSchema" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\vs.xsd" Name="vs.xsd" Id="vs.xsd" KeyPath="yes" />
</Component>
<Component Guid="878D4E54-755C-4D0B-967A-C78CDC7F04C9" Id="DIfxAppXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\difxapp.xsd" Name="difxapp.xsd" Id="difxapp.xsd" KeyPath="yes" />
</Component>
<Component Guid="38D4BD3C-F299-49B3-A5F7-5DFE9BE92830" Id="IisXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\iis.xsd" Name="iis.xsd" Id="iis.xsd" KeyPath="yes" />
</Component>
<Component Guid="E301BCF5-E98D-43F6-A47E-DC9BD51B70C1" Id="PsXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\ps.xsd" Name="ps.xsd" Id="ps.xsd" KeyPath="yes" />
</Component>
<Component Guid="474EF744-E3CF-4BED-A10E-7BC906CD1A80" Id="SqlXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\sql.xsd" Name="sql.xsd" Id="sql.xsd" KeyPath="yes" />
</Component>
<Component Guid="96DD82B8-5183-4C6C-BF15-455895F78A89" Id="UtilXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\util.xsd" Name="util.xsd" Id="util.xsd" KeyPath="yes" />
</Component>
<Component Guid="3E8291C1-F920-40C9-BFF2-3E0DD361EBB6" Id="MSMQXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\msmq.xsd" Name="msmq.xsd" Id="msmq.xsd" KeyPath="yes" />
</Component>
<Component Guid="5169B461-92D6-4C1C-B343-136C69092814" Id="WixDtfHelpFile" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\DTF.chm" Name="DTF.chm" Id="WixDTF.chm" KeyPath="yes" />
</Component>
<Component Guid="8902BE9A-A694-4ACD-9271-9B4E4C07C6ED" Id="WixDtfApiHelpFile" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\DTFAPI.chm" Name="DTFAPI.chm" Id="WixDtfApi.chm" KeyPath="yes" />
</Component>
<Component Guid="A85759C4-AEEB-46B6-BE15-0957348A3D50" Id="WixFirewallXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\firewall.xsd" Name="firewall.xsd" Id="WixFirewall.xsd" KeyPath="yes" />
</Component>
<Component Guid="4C41DDBD-CE42-4669-87B0-250F0BF83DA9" Id="WixGamingXsd" DiskId="1">
<File Source="..\..\bin\Tools\Wix\doc\gaming.xsd" Name="gaming.xsd" Id="WixGaming.xsd" KeyPath="yes" />
</Component>
</Directory>
<Component Guid="6D18FAA0-440D-47FA-B9C1-790A00ADF96D" Id="DariceCub" DiskId="1">
<File Source="..\..\bin\Tools\Wix\darice.cub" Name="darice.cub" Id="darice.cub" KeyPath="yes" />
</Component>
@ -404,9 +361,6 @@ @@ -404,9 +361,6 @@
<Component Guid="8E89CF2B-A866-4488-91F9-9079565FD9AE" Id="NUnitCoreInterfacesDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\lib\nunit.core.interfaces.dll" Name="nunit.core.interfaces.dll" Id="lib.nunit.core.interfaces.dll" KeyPath="yes" />
</Component>
<Component Guid="ECB29CA1-EDDC-4B39-972E-29E54B23DA0B" Id="NUnitUiKitDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\lib\nunit.uikit.dll" Name="nunit.uikit.dll" Id="lib.nunit.uikit.dll" KeyPath="yes" />
</Component>
<Component Guid="F9388116-85AE-4BF0-8CF6-0E6B5C3DD15F" Id="NUnitUtilDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\lib\nunit.util.dll" Name="nunit.util.dll" Id="lib.nunit.util.dll" KeyPath="yes" />
</Component>
@ -477,193 +431,6 @@ @@ -477,193 +431,6 @@
</Component>
</Directory>
</Directory>
<Directory Id="SHFB" Name="SHFB">
<Component Guid="D92A7437-2C2B-4487-A90A-DFA45EE8427E" Id="SHFBMain" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\BuildReflectionData.bat" Name="BuildReflectionData.bat" Id="BuildReflectionData.bat" />
<File Source="..\..\bin\Tools\SHFB\ColorizerLibrary.dll" Name="ColorizerLibrary.dll" Id="ColorizerLibrary.dll" />
<File Source="..\..\bin\Tools\SHFB\ColorizerLibrary.xml" Name="ColorizerLibrary.xml" Id="ColorizerLibrary.xml" />
<File Source="..\..\bin\Tools\SHFB\GenerateInheritedDocs.exe" Name="GenerateInheritedDocs.exe" Id="GenerateInheritedDocs.exe" />
<File Source="..\..\bin\Tools\SHFB\Help.ico" Name="Help.ico" Id="Help.ico" />
<File Source="..\..\bin\Tools\SHFB\ICSharpCode.TextEditor.dll" Name="ICSharpCode.TextEditor.dll" Id="SHFB.ICSharpCode.TextEditor.dll" />
<File Source="..\..\bin\Tools\SHFB\License.txt" Name="License.txt" Id="License.txt" />
<File Source="..\..\bin\Tools\SHFB\Sandcastle.url" Name="Sandcastle.url" Id="Sandcastle.url" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.chm" Name="SandcastleBuilder.chm" Id="SandcastleBuilder.chm" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.Components.dll" Name="SandcastleBuilder.Components.dll" Id="SandcastleBuilder.Components.dll" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.Components.xml" Name="SandcastleBuilder.Components.xml" Id="SandcastleBuilder.Components.xml" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.ico" Name="SandcastleBuilder.ico" Id="SandcastleBuilder.ico" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.Utils.dll" Name="SandcastleBuilder.Utils.dll" Id="SandcastleBuilder.Utils.dll" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilder.Utils.xml" Name="SandcastleBuilder.Utils.xml" Id="SandcastleBuilder.Utils.xml" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilderConsole.exe" Name="SandcastleBuilderConsole.exe" Id="SandcastleBuilderConsole.exe" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilderConsole.xml" Name="SandcastleBuilderConsole.xml" Id="SandcastleBuilderConsole.xml" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilderGUI.exe" Name="SandcastleBuilderGUI.exe" Id="SandcastleBuilderGUI.exe" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilderGUI.exe.config" Name="SandcastleBuilderGUI.exe.config" Id="SandcastleBuilderGUI.exe.config" />
<File Source="..\..\bin\Tools\SHFB\SandcastleBuilderGUI.xml" Name="SandcastleBuilderGUI.xml" Id="SandcastleBuilderGUI.xml" />
<File Source="..\..\bin\Tools\SHFB\SandcastleHtmlExtract.config" Name="SandcastleHtmlExtract.config" Id="SandcastleHtmlExtract.config" />
<File Source="..\..\bin\Tools\SHFB\SandcastleHtmlExtract.exe" Name="SandcastleHtmlExtract.exe" Id="SandcastleHtmlExtract.exe" />
<File Source="..\..\bin\Tools\SHFB\SandcastleStyles.url" Name="SandcastleStyles.url" Id="SandcastleStyles.url" />
<File Source="..\..\bin\Tools\SHFB\SHFB.url" Name="SHFB.url" Id="SHFB.url" />
<File Source="..\..\bin\Tools\SHFB\WeifenLuo.WinFormsUI.Docking.dll" Name="WeifenLuo.WinFormsUI.Docking.dll" Id="SHFB.WeifenLuo.WinFormsUI.Docking.dll" />
</Component>
<Directory Id="BuildComponents" Name="BuildComponents">
<Component Guid="91F3595E-01C8-4378-9254-F894A1A9FA82" Id="SHFBBuildComponents" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\BuildComponents\SandcastleBuilder.Components.config" Name="SandcastleBuilder.Components.config" Id="SandcastleBuilder.Components.config" />
</Component>
</Directory>
<Directory Id="Colorizer" Name="Colorizer">
<Component Guid="65C6D254-EAFA-4A26-9726-42D75864F92B" Id="SHFBColorizer" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\Colorizer\CopyCode.gif" Name="CopyCode.gif" Id="CopyCode.gif" />
<File Source="..\..\bin\Tools\SHFB\Colorizer\CopyCode_h.gif" Name="CopyCode_h.gif" Id="CopyCode_h.gif" />
<File Source="..\..\bin\Tools\SHFB\Colorizer\highlight.css" Name="highlight.css" Id="highlight.css" />
<File Source="..\..\bin\Tools\SHFB\Colorizer\highlight.js" Name="highlight.js" Id="highlight.js" />
<File Source="..\..\bin\Tools\SHFB\Colorizer\highlight.xml" Name="highlight.xml" Id="highlight.xml" />
<File Source="..\..\bin\Tools\SHFB\Colorizer\highlight.xsl" Name="highlight.xsl" Id="highlight.xsl" />
</Component>
</Directory>
<Directory Id="ConceptualTemplates" Name="ConceptualTemplates">
<Component Guid="61EA2A91-8A1E-4EF3-9898-105075A9052E" Id="SHFBConceptualTemplates" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Conceptual.xml" Name="Conceptual.xml" Id="Conceptual.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Error Message.xml" Name="Error Message.xml" Id="Error_Message.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Glossary.xml" Name="Glossary.xml" Id="Glossary.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\How To.xml" Name="How To.xml" Id="How_To.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Orientation.xml" Name="Orientation.xml" Id="Orientation.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Reference With Syntax.xml" Name="Reference With Syntax.xml" Id="Reference_With_Syntax.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Reference Without Syntax.xml" Name="Reference Without Syntax.xml" Id="Reference_Without_Syntax.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Reference.xml" Name="Reference.xml" Id="Reference.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Sample.xml" Name="Sample.xml" Id="Sample.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\SDK Technology Architecture.xml" Name="SDK Technology Architecture.xml" Id="SDK_Technology_Architecture.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\SDK Technology Code Directory.xml" Name="SDK Technology Code Directory.xml" Id="SDK_Technology_Code_Directory.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\SDK Technology Orientation.xml" Name="SDK Technology Orientation.xml" Id="SDK_Technology_Orientation.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\SDK Technology Scenarios.xml" Name="SDK Technology Scenarios.xml" Id="SDK_Technology_Scenarios.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\SDK Technology Summary.xml" Name="SDK Technology Summary.xml" Id="SDK_Technology_Summary.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Troubleshooting.xml" Name="Troubleshooting.xml" Id="Troubleshooting.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\User Interface Reference.xml" Name="User Interface Reference.xml" Id="User_Interface_Reference.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Walkthrough.xml" Name="Walkthrough.xml" Id="Walkthrough.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\Whitepaper.xml" Name="Whitepaper.xml" Id="Whitepaper.xml" />
<File Source="..\..\bin\Tools\SHFB\ConceptualTemplates\XML Reference.xml" Name="XML Reference.xml" Id="XML_Reference.xml" />
</Component>
</Directory>
<Directory Id="PlugIns" Name="PlugIns">
<Component Guid="D7660FB7-04C6-4CCD-B6E9-CAAA4746761F" Id="SHFBPlugins" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\PlugIns\SandcastleBuilder.PlugIns.dll" Name="SandcastleBuilder.PlugIns.dll" Id="SandcastleBuilder.PlugIns.dll" />
</Component>
</Directory>
<Directory Id="SharedContent" Name="SharedContent">
<Component Guid="133E654E-3923-4FA8-8F76-F26E4517D6BD" Id="SHFBSharedContent" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_de-DE.xml" Name="HanaBuilderContent_de-DE.xml" Id="HanaBuilderContent_de_DE.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_en-US.xml" Name="HanaBuilderContent_en-US.xml" Id="HanaBuilderContent_en_US.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_es-ES.xml" Name="HanaBuilderContent_es-ES.xml" Id="HanaBuilderContent_es_ES.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_fr-FR.xml" Name="HanaBuilderContent_fr-FR.xml" Id="HanaBuilderContent_fr_FR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_it-IT.xml" Name="HanaBuilderContent_it-IT.xml" Id="HanaBuilderContent_it_IT.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_ja-JP.xml" Name="HanaBuilderContent_ja-JP.xml" Id="HanaBuilderContent_ja_JP.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_ko-KR.xml" Name="HanaBuilderContent_ko-KR.xml" Id="HanaBuilderContent_ko_KR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_pt-BR.xml" Name="HanaBuilderContent_pt-BR.xml" Id="HanaBuilderContent_pt_BR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_ru-RU.xml" Name="HanaBuilderContent_ru-RU.xml" Id="HanaBuilderContent_ru_RU.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_zh-CHS.xml" Name="HanaBuilderContent_zh-CHS.xml" Id="HanaBuilderContent_zh_CHS.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\HanaBuilderContent_zh-CN.xml" Name="HanaBuilderContent_zh-CN.xml" Id="HanaBuilderContent_zh_CN.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_de-DE.xml" Name="PrototypeBuilderContent_de-DE.xml" Id="PrototypeBuilderContent_de_DE.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_en-US.xml" Name="PrototypeBuilderContent_en-US.xml" Id="PrototypeBuilderContent_en_US.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_es-ES.xml" Name="PrototypeBuilderContent_es-ES.xml" Id="PrototypeBuilderContent_es_ES.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_fr-FR.xml" Name="PrototypeBuilderContent_fr-FR.xml" Id="PrototypeBuilderContent_fr_FR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_it-IT.xml" Name="PrototypeBuilderContent_it-IT.xml" Id="PrototypeBuilderContent_it_IT.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_ja-JP.xml" Name="PrototypeBuilderContent_ja-JP.xml" Id="PrototypeBuilderContent_ja_JP.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_ko-KR.xml" Name="PrototypeBuilderContent_ko-KR.xml" Id="PrototypeBuilderContent_ko_KR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_pt-BR.xml" Name="PrototypeBuilderContent_pt-BR.xml" Id="PrototypeBuilderContent_pt_BR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_ru-RU.xml" Name="PrototypeBuilderContent_ru-RU.xml" Id="PrototypeBuilderContent_ru_RU.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_zh-CHS.xml" Name="PrototypeBuilderContent_zh-CHS.xml" Id="PrototypeBuilderContent_zh_CHS.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\PrototypeBuilderContent_zh-CN.xml" Name="PrototypeBuilderContent_zh-CN.xml" Id="PrototypeBuilderContent_zh_CN.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_de-DE.xml" Name="SharedBuilderContent_de-DE.xml" Id="SharedBuilderContent_de_DE.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_en-US.xml" Name="SharedBuilderContent_en-US.xml" Id="SharedBuilderContent_en_US.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_es-ES.xml" Name="SharedBuilderContent_es-ES.xml" Id="SharedBuilderContent_es_ES.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_fr-FR.xml" Name="SharedBuilderContent_fr-FR.xml" Id="SharedBuilderContent_fr_FR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_it-IT.xml" Name="SharedBuilderContent_it-IT.xml" Id="SharedBuilderContent_it_IT.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_ja-JP.xml" Name="SharedBuilderContent_ja-JP.xml" Id="SharedBuilderContent_ja_JP.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_ko-KR.xml" Name="SharedBuilderContent_ko-KR.xml" Id="SharedBuilderContent_ko_KR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_pt-BR.xml" Name="SharedBuilderContent_pt-BR.xml" Id="SharedBuilderContent_pt_BR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_ru-RU.xml" Name="SharedBuilderContent_ru-RU.xml" Id="SharedBuilderContent_ru_RU.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_zh-CHS.xml" Name="SharedBuilderContent_zh-CHS.xml" Id="SharedBuilderContent_zh_CHS.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\SharedBuilderContent_zh-CN.xml" Name="SharedBuilderContent_zh-CN.xml" Id="SharedBuilderContent_zh_CN.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_de-DE.txt" Name="StopWordList_de-DE.txt" Id="StopWordList_de_DE.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_en-US.txt" Name="StopWordList_en-US.txt" Id="StopWordList_en_US.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_es-ES.txt" Name="StopWordList_es-ES.txt" Id="StopWordList_es_ES.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_fr-FR.txt" Name="StopWordList_fr-FR.txt" Id="StopWordList_fr_FR.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_it-IT.txt" Name="StopWordList_it-IT.txt" Id="StopWordList_it_IT.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_ja-JP.txt" Name="StopWordList_ja-JP.txt" Id="StopWordList_ja_JP.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_ko-KR.txt" Name="StopWordList_ko-KR.txt" Id="StopWordList_ko_KR.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_pt-BR.txt" Name="StopWordList_pt-BR.txt" Id="StopWordList_pt_BR.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_ru-RU.txt" Name="StopWordList_ru-RU.txt" Id="StopWordList_ru_RU.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_zh-CHS.txt" Name="StopWordList_zh-CHS.txt" Id="StopWordList_zh_CHS.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\StopWordList_zh-CN.txt" Name="StopWordList_zh-CN.txt" Id="StopWordList_zh_CN.txt" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_de-DE.xml" Name="VS2005BuilderContent_de-DE.xml" Id="VS2005BuilderContent_de_DE.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_en-US.xml" Name="VS2005BuilderContent_en-US.xml" Id="VS2005BuilderContent_en_US.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_es-ES.xml" Name="VS2005BuilderContent_es-ES.xml" Id="VS2005BuilderContent_es_ES.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_fr-FR.xml" Name="VS2005BuilderContent_fr-FR.xml" Id="VS2005BuilderContent_fr_FR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_it-IT.xml" Name="VS2005BuilderContent_it-IT.xml" Id="VS2005BuilderContent_it_IT.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_ja-JP.xml" Name="VS2005BuilderContent_ja-JP.xml" Id="VS2005BuilderContent_ja_JP.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_ko-KR.xml" Name="VS2005BuilderContent_ko-KR.xml" Id="VS2005BuilderContent_ko_KR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_pt-BR.xml" Name="VS2005BuilderContent_pt-BR.xml" Id="VS2005BuilderContent_pt_BR.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_ru-RU.xml" Name="VS2005BuilderContent_ru-RU.xml" Id="VS2005BuilderContent_ru_RU.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_zh-CHS.xml" Name="VS2005BuilderContent_zh-CHS.xml" Id="VS2005BuilderContent_zh_CHS.xml" />
<File Source="..\..\bin\Tools\SHFB\SharedContent\VS2005BuilderContent_zh-CN.xml" Name="VS2005BuilderContent_zh-CN.xml" Id="VS2005BuilderContent_zh_CN.xml" />
</Component>
</Directory>
<Directory Id="SHFBTemplates" Name="Templates">
<Component Guid="5A21AA47-795A-4A94-AB67-6D36DEA22117" Id="SHFBTemplates" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\Templates\Build1xHelpFile.bat" Name="Build1xHelpFile.bat" Id="Build1xHelpFile.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\Build2xHelpFile.bat" Name="Build2xHelpFile.bat" Id="Build2xHelpFile.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\BuildConceptualTopics.bat" Name="BuildConceptualTopics.bat" Id="BuildConceptualTopics.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\BuildReferenceTopics.bat" Name="BuildReferenceTopics.bat" Id="BuildReferenceTopics.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\conceptual.config" Name="conceptual.config" Id="conceptual.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\ExtractHtmlInfo.bat" Name="ExtractHtmlInfo.bat" Id="ExtractHtmlInfo.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\FixScriptSharp.xsl" Name="FixScriptSharp.xsl" Id="FixScriptSharp.xsl" />
<File Source="..\..\bin\Tools\SHFB\Templates\Generate2xTOC.bat" Name="Generate2xTOC.bat" Id="Generate2xTOC.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\GenerateInheritedDocs.bat" Name="GenerateInheritedDocs.bat" Id="GenerateInheritedDocs.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\GenerateInheritedDocs.config" Name="GenerateInheritedDocs.config" Id="GenerateInheritedDocs.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\GenerateIntermediateTOC.bat" Name="GenerateIntermediateTOC.bat" Id="GenerateIntermediateTOC.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\GenerateRefInfo.bat" Name="GenerateRefInfo.bat" Id="GenerateRefInfo.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\Hana.config" Name="Hana.config" Id="Hana.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\Hana.xsl" Name="Hana.xsl" Id="Hana.xsl" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help1x.hhp" Name="Help1x.hhp" Id="Help1x.hhp" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x.HxC" Name="Help2x.HxC" Id="Help2x.HxC" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x.HxF" Name="Help2x.HxF" Id="Help2x.HxF" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_A.HxK" Name="Help2x_A.HxK" Id="Help2x_A.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_B.HxK" Name="Help2x_B.HxK" Id="Help2x_B.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_F.HxK" Name="Help2x_F.HxK" Id="Help2x_F.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_H2Reg.ini" Name="Help2x_H2Reg.ini" Id="Help2x_H2Reg.ini" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_K.HxK" Name="Help2x_K.HxK" Id="Help2x_K.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_NamedURLIndex.HxK" Name="Help2x_NamedURLIndex.HxK" Id="Help2x_NamedURLIndex.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\Help2x_S.HxK" Name="Help2x_S.HxK" Id="Help2x_S.HxK" />
<File Source="..\..\bin\Tools\SHFB\Templates\MRefBuilder.config" Name="MRefBuilder.config" Id="MRefBuilder.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\Prototype.config" Name="Prototype.config" Id="Prototype.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\Prototype.xsl" Name="Prototype.xsl" Id="Prototype.xsl" />
<File Source="..\..\bin\Tools\SHFB\Templates\TransformBuildLog.xsl" Name="TransformBuildLog.xsl" Id="TransformBuildLog.xsl" />
<File Source="..\..\bin\Tools\SHFB\Templates\TransformManifest.bat" Name="TransformManifest.bat" Id="TransformManifest.bat" />
<File Source="..\..\bin\Tools\SHFB\Templates\VS2005.config" Name="VS2005.config" Id="VS2005.config" />
<File Source="..\..\bin\Tools\SHFB\Templates\VS2005.xsl" Name="VS2005.xsl" Id="VS2005.xsl" />
</Component>
</Directory>
<Directory Id="Web" Name="Web">
<Component Guid="7910CF17-4297-4F06-971A-451ED3A02115" Id="SHFBWeb" DiskId="1">
<File Source="..\..\bin\Tools\SHFB\Web\CloseSearch.png" Name="CloseSearch.png" Id="CloseSearch.png" />
<File Source="..\..\bin\Tools\SHFB\Web\CollapseAll.bmp" Name="CollapseAll.bmp" Id="CollapseAll.bmp" />
<File Source="..\..\bin\Tools\SHFB\Web\Collapsed.gif" Name="Collapsed.gif" Id="Collapsed.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\ExpandAll.bmp" Name="ExpandAll.bmp" Id="ExpandAll.bmp" />
<File Source="..\..\bin\Tools\SHFB\Web\Expanded.gif" Name="Expanded.gif" Id="Expanded.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\FillNode.aspx" Name="FillNode.aspx" Id="FillNode.aspx" />
<File Source="..\..\bin\Tools\SHFB\Web\Index.aspx" Name="Index.aspx" Id="Index.aspx" />
<File Source="..\..\bin\Tools\SHFB\Web\Index.gif" Name="Index.gif" Id="Index.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\Index.html" Name="Index.html" Id="Index.html" />
<File Source="..\..\bin\Tools\SHFB\Web\Item.gif" Name="Item.gif" Id="Item.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\LoadIndexKeywords.aspx" Name="LoadIndexKeywords.aspx" Id="LoadIndexKeywords.aspx" />
<File Source="..\..\bin\Tools\SHFB\Web\Search.gif" Name="Search.gif" Id="Search.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\SearchHelp.aspx" Name="SearchHelp.aspx" Id="SearchHelp.aspx" />
<File Source="..\..\bin\Tools\SHFB\Web\Splitter.gif" Name="Splitter.gif" Id="Splitter.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\SyncTOC.gif" Name="SyncTOC.gif" Id="SyncTOC.gif" />
<File Source="..\..\bin\Tools\SHFB\Web\TOC.css" Name="TOC.css" Id="TOC.css" />
<File Source="..\..\bin\Tools\SHFB\Web\TOC.js" Name="TOC.js" Id="TOC.js" />
<File Source="..\..\bin\Tools\SHFB\Web\Web.Config" Name="Web.Config" Id="Web.Config" />
</Component>
</Directory>
</Directory>
</Directory>
<Component Guid="3730EF42-5257-4EB2-9DA1-57151E5EB5A3" Id="AgaControlsDll" DiskId="1">
<File Source="..\..\bin\Aga.Controls.dll" Id="Aga.Controls.dll" Name="Aga.Controls.dll" Assembly=".net" AssemblyApplication="Aga.Controls.dll" AssemblyManifest="Aga.Controls.dll" KeyPath="yes" />
@ -1304,9 +1071,6 @@ @@ -1304,9 +1071,6 @@
<Component Guid="5A1F81D4-8F6C-41E0-8FFE-B6BBFB2F3804" Id="RubyMicrosoftScriptingExtensionAttributeDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\RubyBinding\Microsoft.Scripting.ExtensionAttribute.dll" Name="Microsoft.Scripting.ExtensionAttribute.dll" Id="RubyBinding.Microsoft.Scripting.ExtensionAttribute.dll" KeyPath="yes" Assembly=".net" AssemblyApplication="RubyBinding.Microsoft.Scripting.ExtensionAttribute.dll" AssemblyManifest="RubyBinding.Microsoft.Scripting.ExtensionAttribute.dll" />
</Component>
<Component Guid="C9C304B7-28A1-4E0C-923D-6D3E9F95F8DF" Id="MicrosoftScriptingHelpersDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\RubyBinding\Microsoft.Scripting.Helpers.dll" Name="Microsoft.Scripting.Helpers.dll" Id="Microsoft.Scripting.Helpers.dll" KeyPath="yes" Assembly=".net" AssemblyApplication="Microsoft.Scripting.Helpers.dll" AssemblyManifest="Microsoft.Scripting.Helpers.dll" />
</Component>
<Component Guid="6877EFD9-7005-4BDD-80E6-FB4790436E23" Id="RubyBindingAddin" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\RubyBinding\RubyBinding.addin" Name="RubyBinding.addin" Id="RubyBinding.addin" KeyPath="yes" />
</Component>

24
src/Setup/Setup.wxs

@ -184,13 +184,7 @@ @@ -184,13 +184,7 @@
<ComponentRef Id="SharpDevelopProgramMenuItems"/>
<ComponentRef Id="DesktopFolderItems"/>
<ComponentRef Id="DIfxAppXsd"/>
<ComponentRef Id="IisXsd"/>
<ComponentRef Id="PsXsd"/>
<ComponentRef Id="SqlXsd"/>
<ComponentRef Id="UtilXsd"/>
<ComponentRef Id="DariceCub"/>
<ComponentRef Id="NetFxSchema"/>
<ComponentRef Id="HeatExe"/>
<ComponentRef Id="MeltExe"/>
<ComponentRef Id="MergeModCub"/>
@ -224,18 +218,11 @@ @@ -224,18 +218,11 @@
<ComponentRef Id="WixVSSchema"/>
<ComponentRef Id="WixFirewallSchema"/>
<ComponentRef Id="WixGamingSchema"/>
<ComponentRef Id="VSExtensionSchema"/>
<ComponentRef Id="WixLicenseFiles"/>
<ComponentRef Id="WixBitmapFiles"/>
<ComponentRef Id="WixDocFiles"/>
<ComponentRef Id="WixDtfHelpFile"/>
<ComponentRef Id="WixDtfApiHelpFile"/>
<ComponentRef Id="WixVSExtension"/>
<ComponentRef Id="Difxapp_x64Wixlib"/>
<ComponentRef Id="Difxapp_x86Wixlib"/>
<ComponentRef Id="MSMQXsd"/>
<ComponentRef Id="WixFirewallXsd"/>
<ComponentRef Id="WixGamingXsd"/>
<ComponentRef Id="EmptyWixFileTemplate"/>
<ComponentRef Id="WixDefaultLicenseRtf"/>
<ComponentRef Id="EmptyWixProjectTemplate"/>
@ -254,16 +241,6 @@ @@ -254,16 +241,6 @@
<ComponentRef Id="WixNetFxExtensionDll"/>
<ComponentRef Id="WixTasksDll"/>
<ComponentRef Id="SHFBMain"/>
<ComponentRef Id="SHFBBuildComponents"/>
<ComponentRef Id="SHFBColorizer"/>
<ComponentRef Id="SHFBConceptualTemplates"/>
<ComponentRef Id="SHFBPlugins"/>
<ComponentRef Id="SHFBSharedContent"/>
<ComponentRef Id="SHFBTemplates"/>
<ComponentRef Id="SHFBWeb"/>
<ComponentRef Id="NUnitUiKitDll"/>
<ComponentRef Id="NUnitUtilDll"/>
<ComponentRef Id="NUnitConsoleFiles"/>
<ComponentRef Id="NUnitConsoleX86Files"/>
@ -417,7 +394,6 @@ @@ -417,7 +394,6 @@
<ComponentRef Id="IronRubyDll"/>
<ComponentRef Id="IronRubyLibrariesDll"/>
<ComponentRef Id="IronRubyLibrariesYamlDll"/>
<ComponentRef Id="MicrosoftScriptingHelpersDll"/>
<ComponentRef Id="RubyBindingAddin"/>
<ComponentRef Id="RubyBindingDll"/>
<ComponentRef Id="RubyMicrosoftDynamicDll"/>

19
src/Tools/Tools.build

@ -4,17 +4,8 @@ @@ -4,17 +4,8 @@
</PropertyGroup>
<ItemGroup>
<SHFBFiles Include="SHFB\*"/>
<SHFBBuildComponents Include="SHFB\BuildComponents\*"/>
<SHFBColorizerFiles Include="SHFB\Colorizer\*"/>
<SHFBConceptualTemplates Include="SHFB\ConceptualTemplates\*"/>
<SHFBPluginsFiles Include="SHFB\Plugins\*"/>
<SHFBSharedContentFiles Include="SHFB\SharedContent\*"/>
<SHFBTemplatesFiles Include="SHFB\Templates\*"/>
<SHFBWebFiles Include="SHFB\Web\*"/>
<WixFiles Include="wix\*"/>
<WixBitmapFiles Include="wix\Bitmaps\*"/>
<WixDocFiles Include="wix\doc\*"/>
<WixLibFiles Include="wix\lib\*"/>
<NUnitFiles Include="NUnit\*.dll;NUnit\*.exe"/>
<NUnitConfigFiles Include="NUnit\*.config"/>
@ -33,17 +24,7 @@ @@ -33,17 +24,7 @@
</Target>
<Target Name="Build" DependsOnTargets="CompileLanguageResources">
<Copy SourceFiles="@(SHFBFiles)" DestinationFolder="..\..\bin\Tools\SHFB" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBBuildComponents)" DestinationFolder="..\..\bin\Tools\SHFB\BuildComponents" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBColorizerFiles)" DestinationFolder="..\..\bin\Tools\SHFB\Colorizer" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBConceptualTemplates)" DestinationFolder="..\..\bin\Tools\SHFB\ConceptualTemplates" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBPluginsFiles)" DestinationFolder="..\..\bin\Tools\SHFB\PlugIns" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBSharedContentFiles)" DestinationFolder="..\..\bin\Tools\SHFB\SharedContent" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBTemplatesFiles)" DestinationFolder="..\..\bin\Tools\SHFB\Templates" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(SHFBWebFiles)" DestinationFolder="..\..\bin\Tools\SHFB\Web" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(WixFiles)" DestinationFolder="..\..\bin\Tools\Wix" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(WixDocFiles)" DestinationFolder="..\..\bin\Tools\Wix\doc" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(WixBitmapFiles)" DestinationFolder="..\..\bin\Tools\Wix\Bitmaps" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(WixLibFiles)" DestinationFolder="..\..\bin\Tools\Wix\lib" SkipUnchangedFiles="true"/>
<Copy SourceFiles="@(NUnitFiles)" DestinationFolder="..\..\bin\Tools\NUnit" SkipUnchangedFiles="true"/>

Loading…
Cancel
Save