Skip to content

Commit

Permalink
assembly analysis pass that diffs IL contents for debugging (#249)
Browse files Browse the repository at this point in the history
  • Loading branch information
pdeligia authored Nov 1, 2021
1 parent 403f384 commit 2b7d907
Show file tree
Hide file tree
Showing 21 changed files with 749 additions and 288 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ jobs:
- name: Build Coyote projects
run: ./Scripts/build.ps1
shell: pwsh
- name: Validate Coyote Rewriting
if: ${{ matrix.platform == 'windows-latest' }}
run: ./Tests/compare-rewriting-diff-logs.ps1
shell: pwsh
- name: Run Coyote Tests
run: ./Scripts/run-tests.ps1
shell: pwsh
Expand Down
99 changes: 74 additions & 25 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
Expand All @@ -12,25 +13,27 @@
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs

# Mono auto generated files
mono_crash.*

# Build results
[Bb]uild/
[Cc]odegen/
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Bb]inaries/
[Oo]bj/
[Ll]og/
[Ll]ogs/

# Visual Studio cache/options directory
# Visual Studio 2015/2017 cache/options directory
.vs/
**/.vscode/**

# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/

Expand All @@ -41,9 +44,10 @@ Generated\ Files/
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NUNIT
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml

# Build Results of an ATL Project
[Dd]ebugPS/
Expand All @@ -52,21 +56,22 @@ dlldata.c

# Benchmark Results
BenchmarkDotNet.Artifacts/
benchmark_*/

# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
**/Properties/launchSettings.json

# ASP.NET Scaffolding
ScaffoldingReadMe.txt

# StyleCop
StyleCopReport.xml

# Files built by Visual Studio
*_i.c
*_p.c
*_i.h
*_h.h
*.ilk
*.meta
*.obj
Expand All @@ -83,7 +88,9 @@ StyleCopReport.xml
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
Expand Down Expand Up @@ -125,9 +132,6 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding add-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

Expand All @@ -138,6 +142,11 @@ _TeamCity*
.axoCover/*
!.axoCover/settings.json

# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info

# Visual Studio code coverage results
*.coverage
*.coveragexml
Expand Down Expand Up @@ -183,8 +192,10 @@ publish/
# in these scripts will be unencrypted
PublishScripts/

# NuGet
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
Expand All @@ -194,7 +205,9 @@ PublishScripts/
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
nuget.exe

# Nuget personal access tokens and Credentials
# nuget.config

# Microsoft Azure Build Output
csx/
Expand All @@ -210,12 +223,14 @@ BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload

# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
!?*.[Cc]ache/

# Others
ClientBin/
Expand Down Expand Up @@ -259,6 +274,9 @@ ServiceFabricBackup/
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl

# Microsoft Fakes
FakesAssemblies/
Expand Down Expand Up @@ -294,12 +312,8 @@ paket-files/
# FAKE - F# Make
.fake/

# JetBrains Rider
.idea/
*.sln.iml

# CodeRush
.cr/
# CodeRush personal settings
.cr/personal

# Python Tools for Visual Studio (PTVS)
__pycache__/
Expand Down Expand Up @@ -336,12 +350,47 @@ ASALocalRun/
# MFractors (Xamarin productivity tool) working folder
.mfractor/

# mkdocs
site
# Local History for Visual Studio
.localhistory/

# BeatPulse healthcheck temp database
healthchecksdb

# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/

# Ionide (cross platform F# VS Code tools) working folder
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd

# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace

# Local History for Visual Studio Code
.history/

# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp

# JetBrains Rider
.idea/
*.sln.iml

# Website
site
docs/assets/images/Thumbs.db
docs/_data/sidebar-temp.yml
docs/_learn/ref/toc.yml
.ipynb_checkpoints/
*-checkpoint.ipynb
*-checkpoint.ipynb
7 changes: 4 additions & 3 deletions Scripts/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
param(
[ValidateSet("Debug", "Release")]
[string]$configuration = "Release",
[bool]$local = $true
[bool]$local = $true,
[switch]$latest
)

$ScriptDir = $PSScriptRoot
Expand Down Expand Up @@ -40,12 +41,12 @@ $solution = Join-Path -Path $ScriptDir -ChildPath "\.." -AdditionalChildPath "Co
$command = "build -c $configuration $solution /p:Platform=""Any CPU"""

if ($local) {
if ($version_net4) {
if ($version_net4 -and -not $latest) {
# Build .NET Framework 4.x as well as the new version.
$command = $command + " /p:BUILD_NET462=yes"
}

if ($null -ne $version_netcore31 -and $version_netcore31 -ne $sdk_version) {
if ($null -ne $version_netcore31 -and $version_netcore31 -ne $sdk_version -and -not $latest) {
# Build .NET Core 3.1 as well as the new version.
$command = $command + " /p:BUILD_NETCORE31=yes"
}
Expand Down
2 changes: 1 addition & 1 deletion Source/Test/Rewriting/CachedNameProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ internal static class CachedNameProvider
internal static string GenericHashSetFullName { get; } = typeof(SystemGenericCollections.HashSet<>).FullName;

internal static string ConcurrentBagFullName { get; } = typeof(SystemConcurrentCollections.ConcurrentBag<>).FullName;
internal static string ConcurrentDictonaryFullName { get; } = typeof(SystemConcurrentCollections.ConcurrentDictionary<,>).FullName;
internal static string ConcurrentDictionaryFullName { get; } = typeof(SystemConcurrentCollections.ConcurrentDictionary<,>).FullName;
internal static string ConcurrentQueueFullName { get; } = typeof(SystemConcurrentCollections.ConcurrentQueue<>).FullName;
internal static string ConcurrentStackFullName { get; } = typeof(SystemConcurrentCollections.ConcurrentStack<>).FullName;
}
Expand Down
Loading

0 comments on commit 2b7d907

Please sign in to comment.