-
-
Notifications
You must be signed in to change notification settings - Fork 186
Add support for generics <T> #3137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 195 commits
Commits
Show all changes
210 commits
Select commit
Hold shift + click to select a range
7956259
Support for generics (#1802)
josesimoes 7dbe14f
Add generic related flags to methoddef flags
josesimoes 46c1b62
Add test app for generics
josesimoes aec989c
Fix VCX projects
josesimoes a4b7b29
Migrate test app to VS2022
josesimoes 9633a89
WIP resuming generics implementation on CLR
josesimoes 749de45
Fix several issues in declarations and code to align new names
josesimoes bbe7113
Add missing declaration from recent PR
josesimoes 8a16c65
Fix code style
josesimoes c6ffd43
Add missing implementation for FindTypeDef
josesimoes d5d23a3
Fix code style
josesimoes af23f00
Bump version to 2.0
josesimoes e0dfa62
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 4f8750b
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 76cbee4
Default for loop after exit is now false
josesimoes 05df8c5
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes cfe9535
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes edcf9ab
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 88e3055
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 0e9c52f
Add nf-props to solution items
josesimoes 99032f6
Fix defines for virtual device
josesimoes f1a18bb
Fix types to larger ones
josesimoes 82c4a38
Replace blind calls to CLR FAIL to include detail message
josesimoes caae7f2
Fix defines for virtual device
josesimoes 134f5c2
Port change from upstream
josesimoes 67aa892
Remove duplicated call
josesimoes adff06e
Bringing GPIO library up to date with new types
josesimoes f730ead
Fix declaration of NANOCLR_MSG1_SET_AND_LEAVE to accept arg list
josesimoes f79563a
Code style fixes
josesimoes b1c02b1
Improve exception tracing
josesimoes e605ca6
Add assert for size of CLR_RECORD structs
josesimoes 9b6a11a
Fix compiler error
josesimoes 2bb833c
Add instance names to help debugging
josesimoes bc97ad9
Moving VerifyStackOK to class
josesimoes 55f22fc
Move comment to follow code guidelines
josesimoes aa7169c
More style fixes
josesimoes f2018c6
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes a756d83
Fix resolving MethodDef from MemberRef
josesimoes c2b92fc
Add verbose Name for instances to help debugging
josesimoes b60bfbe
Fix MatchSignatureElement to deal with params of Generic Instances
josesimoes 38634fc
Replace FindGenericParamAtTypeDef with FindGenericParamAtTypeSpec
josesimoes 430423f
Multiple code style fixes
josesimoes ca33f50
Fix processing TBL_TypeRef in TypeDef_Instance::ResolveToken
josesimoes ef9ba1d
Improve error check in parser
josesimoes 18b5770
Fix TypeDescriptor::InitializeFromReflection
josesimoes 27a81b8
Add missing parser initializer in InitializeFromTypeSpec
josesimoes 6088cb5
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 6dfda8e
Rework encoding of indexes in several metadata internal structs
josesimoes 68fc0b5
Global rename step 1
josesimoes ff65d4f
Global rename step 2
josesimoes 1507269
Global rename step 3
josesimoes 69da86f
Rename define to disambiguate with same define from Espressif IDF
josesimoes 3a6b1b5
More renames
josesimoes 22a627a
Clean-up declarations for removed legacy functions
josesimoes 54d2ec8
Rename of CLR_RT_WellKnownTypes
josesimoes e6917ee
Replace NULL with nullptr in cpp files
josesimoes a4ea6be
Fixing compiler warnings
josesimoes 68f86b3
Replace var declaration and fix more compiler warnings
josesimoes d28256e
Fix TypeSystem::MatchSignatureElement
antoniofagundes 8707b65
Update checksum for mscorlib
antoniofagundes 35223fd
Add TypeSystem::BuildTypeName for TypeSpec
josesimoes 9398540
Fix TypeSystem::MatchSignatureElement for types with multiple generic…
josesimoes dffff40
Implement trace for type resolution
josesimoes bbf27ab
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
antoniofagundes 119a364
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes a0005dc
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 4a669a6
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes d8e69cf
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
antoniofagundes dde607f
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 2992a6f
Fix check for enum type
josesimoes 5a230b0
Code style fixes
josesimoes 642222d
Add HeapBlock::SetReflection
josesimoes ba8246b
Add ResolveToken to GenericParam
josesimoes e0d5c19
Add implementation for generic param in ldtoken
josesimoes d85ec74
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes cfc66f5
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes b098358
Merge branches 'main' and 'generics-wip' of https://github.com/nanofr…
josesimoes ecc72d5
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 5073ad7
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 9be48e1
Fixing several issues from last merge
josesimoes 3498d61
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 5b08237
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes aaee1d3
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 4135531
Fix known type member
josesimoes 0f5ea38
Fix loop iterator type
josesimoes 8246017
Improve report of bad assembly
josesimoes 3645751
Improvements in declaration of VerifyStackOK
josesimoes 5e070e4
Fixes from code review
josesimoes 5d9e9d2
Simplifications for CLR_RT_GenericParam_Index
josesimoes b2fb9aa
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 3d4ae64
Fix marker version
josesimoes 807c070
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 7c266c7
Fix element name
josesimoes d077328
Fix element name
josesimoes 01d38bc
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 501a482
Improvements in WP packet header handler
josesimoes ad106c8
Add asserts and sanity checks on HB Array handling
josesimoes d001a02
Add asserts on GC compaction (#3050)
josesimoes ba5ed3a
Improvements in WP packet header handler (#3049)
josesimoes a884337
Improve sanity check with WP sync code (#3052)
josesimoes ab8585a
Fix ASSERT in GC heap compact (#3059)
josesimoes 50b07b8
Fix protecting HB from GC (#3062)
josesimoes eeb4eeb
Proper handling thread creation failure (#3063)
josesimoes 0278a36
Fix format string to output x64 addresses (#3067)
josesimoes 484a27c
Stack trace is now generated despite debugger state (#3068)
josesimoes b0562da
Rework test of pointers at GC to use malloc instead of C++ constructo…
josesimoes 9b3b765
Fix output of heap allocation info (#3072)
josesimoes eff7408
Fix asserts (#3074)
josesimoes 34f79e1
Fix pointers comparison (#3075)
josesimoes 583ace5
Fix usage of uintptr_t accross GC and HeapCluster classes (#3076)
josesimoes e907663
Fix element name
josesimoes 2085283
Remove unnecessary memsets from code base (#3079)
josesimoes f963f16
Fix compiler issues
josesimoes 1719949
Fix assert in GC::Heap_Compact (#3080)
josesimoes 07e8015
Fix base64 encode/decode and To/From Base64 string (#3082)
josesimoes 0f5da96
Improve output messages (#3083)
josesimoes 23739b9
Rework `DateTime` and `TimeSpan` (#3084)
josesimoes e979361
Fix printf (#3086)
josesimoes 489c1da
Replace dynamic allocation of print buffer (#3087)
josesimoes 876efdc
Improve root namespace for vxproj files (#3089)
networkfusion df18099
Remove deprecated Windows.Storage API (#3090)
networkfusion b11a683
Add stubs for Sys.Devices.I2c and SPI to virtual nanoCLR (#3100)
josesimoes 3407a4b
Improve fill memory with dirty pattern (#3101)
josesimoes d7105ff
Improve output of GC runs (#3102)
josesimoes cc8006e
Improve output messages for Memory and GC (#3103)
josesimoes 4e08988
Fix offset type in relocation region (#3111)
josesimoes 75d11a0
Fixes and improvements in String heap block (#3112)
josesimoes 17ace79
Add profiler to virtual device (#3113)
josesimoes edf0a5f
Improvements in profiler host processors (#3114)
josesimoes 27c730a
Improvements in profiler (#3115)
josesimoes 4192c0a
Clean-up includes and header files (#3116)
josesimoes 5872af4
OOM exception is back to EE and is not disposed anymore (#3119)
josesimoes 052ff42
Improve profiler messages for object relocation (#3120)
josesimoes 450e7f5
Add comment to clarify origin and reference
josesimoes 7153814
Fix variable names
josesimoes 5a6ed36
Rework Reflection, RuntimeType and System.Type (#3125)
josesimoes db0d891
Fix string relocation handler (#3073)
josesimoes 9dd0e57
Add implementation for Hashing CRC32 to virtual device (#3131)
josesimoes 4e67f9b
Update nanoclr and host to .NET 8.0 (#3134)
josesimoes f48da5a
Fix type lookup table
josesimoes 1d18fa1
Fix declarations
josesimoes de32afb
FindTypeDef is now able to process nested types
josesimoes b6e028d
Fix ResolveToken for FieldDef when using TypeRefs
josesimoes c5a9177
Fix attribute enumerator
josesimoes d1696c2
Fix decoding token in exception handler
josesimoes 44b264a
Fix compare double and floats
josesimoes e48208b
Fix `Equal` and value comparison for double and float types (#3088)
josesimoes d7fe889
Improve type resolution of nested types
josesimoes 05faf5e
Fix crawling of types in FindTypeDef
josesimoes eaba6c8
Fix wrong access in get declaring type
josesimoes 103337a
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 71afbc2
Add missing files from last merge
josesimoes 8abddbe
Fix dev containers versions
josesimoes 9303829
Add missing implementation od DateTime::NewObject
josesimoes 2c2f055
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes d43de1d
Missed previous commit
josesimoes d061b02
Update GC implementation
josesimoes bec0038
Code style fixes for nanoframework/nf-interpreter PR#3137 (#3139)
nfbot 1ff599c
Update GC implementation
josesimoes a861398
Fix build issues
josesimoes 8902aad
Merge branch 'generics-wip' of https://github.com/nanoframework/nf-in…
josesimoes f0cca1a
Merge branch 'update-gc-api' of https://github.com/Eclo/nf-interprete…
josesimoes d9d8387
Merge branch 'generics-wip' of https://github.com/nanoframework/nf-in…
josesimoes bd10161
Fix struct elements name
josesimoes d0c8a77
Update GC implementation
josesimoes 04d5310
Code style fixes (#152)
nfbot ede1f5f
Merge branch 'update-gc-api' of https://github.com/Eclo/nf-interprete…
josesimoes b62eb84
Code style fixes (#154)
nfbot 2073a71
Fix merge
josesimoes 3c2b107
Fix migrated code
josesimoes 03ba6a8
Fix elements name
josesimoes ab6954f
Disable LTO for Azure RTOS and TI SimpleLink targets
josesimoes 9747a46
Fix includes for TI targets
josesimoes 6618434
Rename typedef for Void to disambiguate with TI SimpleLink SDK type
josesimoes 840714d
Adjust storage block size for TI_CC1352R1_LAUNCHXL
josesimoes 994856b
Add sys call _exit required for TI_CC1352R1_LAUNCHXL
josesimoes 12be03b
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes ff9fec1
Merge branch 'update-gc-api' into generics-wip
josesimoes 6936d7c
Fix mscorlib declaration
josesimoes 1eb0dd2
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 6a329f1
Bump mscorlib native version
josesimoes 4c5e235
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes d8f0a6b
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes ec17b1f
Remove test app
josesimoes ee4e249
Add implementation for VerifyStackOK
josesimoes cff23c2
Remove duplicated code
josesimoes badf168
Another pass addressing compiler warnings about nullptr usage
josesimoes 1caf186
Fix case in struct element
josesimoes 795d4a5
Revert wrong NULL replacement
josesimoes c113215
Work CI-CD
josesimoes c20d9b0
Fix wrong declarations
josesimoes ee6dee3
Fix wrong struct element names
josesimoes cd8d7fc
Work CI-CD
josesimoes 67932ad
Work CI-CD
josesimoes edca5fe
Fix MDP path
josesimoes b759f76
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 29f16f6
Replace setting MDP path with copy over
josesimoes 74392c7
Fix formating and typo
josesimoes 8655078
Add debug output
josesimoes a89b9f4
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes b18de9d
Fix copy script
josesimoes 16c9b66
Merge branch 'main' of https://github.com/nanoframework/nf-interprete…
josesimoes 8f181c3
Merge branch 'develop' of https://github.com/nanoframework/nf-interpr…
josesimoes 3014226
Bump version variable counter
josesimoes 08b97e2
Merge branch 'develop' of https://github.com/nanoframework/nf-interpr…
josesimoes 091f92c
Add config for task to download preview version of msbuild components
josesimoes 60d427d
renormalize AZDO yaml
josesimoes b5956c3
Merge branch 'develop' of https://github.com/nanoframework/nf-interpr…
josesimoes 5bcf25a
Bump container versions
josesimoes 9d4a75e
Revert change in jpeg library
josesimoes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-all:v2.56 | ||
| FROM ghcr.io/nanoframework/dev-container-all:v2.0 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-azure-rtos:v1.33 | ||
| FROM ghcr.io/nanoframework/dev-container-azure-rtos:v2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-chibios:v1.34 | ||
| FROM ghcr.io/nanoframework/dev-container-chibios:v2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-esp32:v2.36 | ||
| FROM ghcr.io/nanoframework/dev-container-esp32:v2.0 | ||
josesimoes marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-freertos-nxp:v1.06 | ||
| FROM ghcr.io/nanoframework/dev-container-freertos-nxp:v2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| FROM ghcr.io/nanoframework/dev-container-ti:v1.27 | ||
| FROM ghcr.io/nanoframework/dev-container-ti:v2.0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,75 @@ | ||
| # Copyright (c) .NET Foundation and Contributors | ||
| # See LICENSE file in the project root for full license information. | ||
|
|
||
josesimoes marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| steps: | ||
| - task: PowerShell@2 | ||
| displayName: Check MDP for build | ||
| condition: ne(variables['System.PullRequest.PullRequestId'], '') | ||
| inputs: | ||
| failOnStderr: false | ||
| targetType: "inline" | ||
| script: | | ||
|
|
||
| # compute authorization header in format "AUTHORIZATION: basic 'encoded token'" | ||
| # 'encoded token' is the Base64 of the string "nfbot:personal-token" | ||
| $auth = "basic $([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("nfbot:$(GitHubToken)")))" | ||
|
|
||
| # find PR | ||
| "Getting PR#$env:System_PullRequest_PullRequestNumber details..." | Write-Host -ForegroundColor White -NoNewline | ||
| $pr = Invoke-WebRequest "https://api.github.com/repos/$env:Build_Repository_Name/pulls/$env:System_PullRequest_PullRequestNumber" | ConvertFrom-Json | ||
|
|
||
| if($($pr.number) -eq "$env:System_PullRequest_PullRequestNumber") | ||
| { | ||
| '##[command] OK' | Write-Host -ForegroundColor Green | ||
| } | ||
|
|
||
| # grab PR commit message | ||
| $prCommitMessage = $($pr.body) | ||
|
|
||
| # look for test prompt in PR commit message | ||
| # pattern is "[build with MDP buildId NNN]" | ||
|
|
||
| if($prCommitMessage -match "\[build with MDP buildId (\d+)\]") | ||
| { | ||
| $buildId = $matches[1] | ||
| "AZDO build ID found: $buildId" | Write-Host -ForegroundColor White | ||
|
|
||
| echo "##vso[task.setvariable variable=MDP_BUILDID]$buildId" | ||
| } | ||
| else | ||
| { | ||
| "No build ID found" | Write-Host -ForegroundColor Red | ||
| } | ||
| env: | ||
| GITHUB_TOKEN: $(GitHubToken) | ||
|
|
||
| - task: DownloadPipelineArtifact@2 | ||
| condition: >- | ||
| and( | ||
| eq(variables['DownloadMDP'], true), | ||
| ne(variables['MDP_BUILDID'], '') | ||
| ) | ||
| displayName: Download MDP | ||
| inputs: | ||
| buildType: specific | ||
| project: 'metadata-processor' | ||
| definition: '43' | ||
| buildVersionToDownload: specific | ||
| allowFailedBuilds: true | ||
| pipelineId: $(MDP_BUILDID) | ||
| artifactName: 'deployables' | ||
| targetPath: '$(Pipeline.Workspace)/mdp' | ||
| itemPattern: '*.MsBuildTask.dll' | ||
|
|
||
| - task: PowerShell@2 | ||
| condition: >- | ||
| and( | ||
| succeeded(), | ||
| eq(variables['DownloadMDP'], true), | ||
| ne(variables['MDP_BUILDID'], '') | ||
| ) | ||
| displayName: Set MDP path | ||
| inputs: | ||
| targetType: 'inline' | ||
| script: | | ||
| Write-Host "##vso[task.setvariable variable=NF_MDP_MSBUILDTASK_PATH]$(Pipeline.Workspace)\mdp" | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.