Commit Graph
100 Commits
Author SHA1 Message Date
Dongbo Wang eb3e4a8781 Fix the Sync PSGalleryModules to Artifacts build (#12277)
Merging this to unblock daily build
2020-04-07 17:26:41 -07:00
Dongbo Wang c0c17ded03 Do not wrap return result to PSObject when converting ScriptBlock to delegate (#10619)
This is a breaking change for the delegate types with the object return type:

Before this change, the returned object will always be an PSObject instance.
After this change, the returned object is the underlying object, which could still be an PSObject if that's what the script actually returns.
2020-03-30 21:46:12 +05:00
Dongbo Wang e741dc58dd Discover assemblies loaded by 'Assembly.Load(byte[])' and 'Assembly.LoadFile' (#12203)
* Fix regression: pwsh should discover assemblies loaded by 'Assembly.Load(byte[])' and 'Assembly.LoadFile'
2020-03-28 20:25:59 +05:00
Dongbo Wang 1ec7c826f0 Use dedicated threads to read the redirected output and error streams from the child process for out-of-proc jobs (#11713) 2020-03-28 15:44:23 +05:00
Dongbo Wang c737f3162c Fix NullReferenceException when binding common parameters of type 'ActionPreference' (#12124) 2020-03-18 23:18:21 +05:00
Dongbo Wang bb8a7c779d Update the doc about debugging dotnet core in VSCode (#11969)
* Update the doc about debugging dotnet core in VSCode

* remove en-us
2020-03-10 09:40:12 -07:00
Dongbo Wang 348ca85947 Fix ConciseView to split PositionMessage using [Environment]::NewLine (#12010) 2020-03-04 13:03:08 -08:00
Dongbo Wang da94afaf5b Update the map between console color to VT sequences (#11891) 2020-02-20 14:28:38 -08:00
Dongbo Wang d4536cfb77 Make LTS package always not a preview (#11895) 2020-02-19 15:07:11 -08:00
Dongbo Wang 78a210121b Update the NuGet package generation to include cimcmdlet.dll and most of the built-in modules (#11832) 2020-02-11 16:13:21 -08:00
Dongbo Wang 35c7b7842e Fix how COM objects are enumerated (#11795) 2020-02-10 13:24:50 -08:00
Dongbo Wang da0695362a Fix NativeDllHandler to not throw when file is not found (#11787)
<!-- Anything that looks like this is a comment and can't be seen after the Pull Request is created. -->

# PR Summary

Fix `NativeDllHandler` to not throw when file is not found.

Today, the `NativeDllHandler` calls `NativeLibrary.Load(fullName)` even if the file doesn't exist. This is not right, it should return `IntPtr.Zero` to let the runtime try the next resolution approach, if there is one.
Also, this behavior results in the exception message to be `Unable to load DLL 'F:\win-x64\nativedll.dll' or one of its dependencies: The specified module could not be found`, which is confusing because there was never an explicit loading of a dll with that path.
The real exception generated from runtime should be `Unable to load DLL 'nativedll' or one of its dependencies: The specified module could not be found.`

## PR Checklist

- [x] [PR has a meaningful title](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
    - Use the present tense and imperative mood when describing your changes
- [x] [Summarized changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] [Make sure all `.h`, `.cpp`, `.cs`, `.ps1` and `.psm1` files have the correct copyright header](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
- [x] This PR is ready to merge and is not [Work in Progress](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---work-in-progress).
    - If the PR is work in progress, please add the prefix `WIP:` or `[ WIP ]` to the beginning of the title (the `WIP` bot will keep its status check at `Pending` while the prefix is present) and remove the prefix when the PR is ready.
- **[Breaking changes](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#making-breaking-changes)**
    - [x] None
    - **OR**
    - [ ] [Experimental feature(s) needed](https://github.com/MicrosoftDocs/PowerShell-Docs/blob/staging/reference/6/Microsoft.PowerShell.Core/About/about_Experimental_Features.md)
        - [ ] Experimental feature name(s): <!-- Experimental feature name(s) here -->
- **User-facing changes**
    - [x] Not Applicable
    - **OR**
    - [ ] [Documentation needed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#pull-request---submission)
        - [ ] Issue filed: <!-- Number/link of that issue here -->
- **Testing - New and feature**
    - [x] N/A or can only be tested interactively
    - **OR**
    - [ ] [Make sure you've added a new test if existing tests do not effectively test the code changed](https://github.com/PowerShell/PowerShell/blob/master/.github/CONTRIBUTING.md#before-submitting)
- **Tooling**
    - [x] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
    - **OR**
    - [ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:
        - Impact on [PowerShell Editor Services](https://github.com/PowerShell/PowerShellEditorServices) which is used in the [PowerShell extension](https://github.com/PowerShell/vscode-powershell) for VSCode (which runs in a different PS Host).
        - Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
        - Impact on [PSScriptAnalyzer](https://github.com/PowerShell/PSScriptAnalyzer) (which provides linting & formatting in the editor extensions).
        - Impact on [EditorSyntax](https://github.com/PowerShell/EditorSyntax) (which provides syntax highlighting with in VSCode, GitHub, and many other editors).
2020-02-07 20:03:16 +00:00
Dongbo Wang a4c32bc337 Revert the PRs that made DBNull.Value and NullString.Value treated as $null (#11648) 2020-01-29 14:13:05 -08:00
Dongbo Wang bf85f3fbe1 Make Test-Connection always use the default synchronization context for sending ping requests (#11517) 2020-01-22 08:19:06 +05:00
Dongbo Wang 70d4a89931 Update the change log in preview.md for v7.0.0-rc.2 release (#11609) 2020-01-16 17:05:42 -08:00
Dongbo Wang be813a2fd9 Generate the correct reference assembly for Microsoft.PowerShell.ConsoleHost NuGet package (#11545) 2020-01-13 15:58:02 -08:00
Dongbo Wang 19960a7333 Mark InitialSessionState.ImportPSSnapIn as Obsolete (#11399) 2019-12-20 15:10:36 -08:00
Dongbo Wang 04cf068878 Update the NextReleaseTag to be v7.0.0-preview.7 (#11372) 2019-12-17 09:49:55 -08:00
Dongbo Wang ed18030e5f Update ChangeLog, README.md and metadata.json for 7.0.0-rc.1 release (#11363) 2019-12-16 15:04:28 -08:00
Dongbo Wang 55b572be7b Fix PowerShell class definition leaking into another Runspace (#11273) 2019-12-11 15:41:39 -08:00
Dongbo Wang 5605bf4195 Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 (#11258) 2019-12-11 15:37:18 -08:00
Dongbo Wang 9649a85ce9 Make update notification support LTS and default channels (#11132) 2019-12-10 09:57:00 -08:00
Dongbo Wang 25895e34b8 Fix NullReferenceException in CompletionCompleters public methods (#11274) 2019-12-10 09:51:01 +05:00
Dongbo Wang d68d126cae Change back to use powershell.exe in 'SetVersionVariables.yml' to unblock daily build (#11207)
This reverts commit cf729c3407.
2019-11-27 13:35:21 -08:00
Dongbo Wang cf729c3407 Change to use pwsh to have consistent JSON conversion for DateTime (#11126) 2019-11-26 12:42:18 -08:00
Dongbo Wang d46dfc26b7 Do not resolve types from assemblies that are loaded in separate AssemblyLoadContext (#11088) 2019-11-26 12:40:16 -08:00
Dongbo Wang fff137e69f Avoid using closure in Parser.SaveError (#11006) 2019-11-08 00:45:43 +00:00
Dongbo Wang 8081e765d8 Upload Build-Info Json file with the 'ReleaseDate' field (#10986) 2019-11-07 12:10:06 -08:00
Dongbo Wang 3768be1b21 Remove the not-working 'run Update-Help from Get-Help when Get-Help runs for the first time' feature (#10974) 2019-11-07 11:54:22 -08:00
Dongbo Wang 6aa3188a1a Remove the unused setting key ConsolePrompting and avoid unnecessary string creation when querying ExecutionPolicy setting (#10985) 2019-11-06 08:46:32 +05:00
Dongbo Wang 518a479909 Make ConvertTo-Json treat [AutomationNull]::Value and [NullString]::Value as $null (#10957) 2019-11-05 14:32:52 -08:00
Dongbo Wang 8749db9b81 Improve processing of the powershell built-in type data from 'types.ps1xml', 'typesV3.ps1xml' and 'GetEvent.types.ps1xml' (#10898) 2019-11-01 10:36:05 -07:00
Dongbo Wang 7772418dec Update PSConfiguration.ReadValueFromFile to make it faster and more memory efficient (#10839) 2019-10-30 14:44:34 -07:00
Dongbo Wang 0effc64534 Update the dotnet SDK install script URL in build.psm1 (#10927) 2019-10-28 15:50:07 -07:00
Dongbo Wang 8b33789286 Remove the stale link from powershell-beginners-guide.md (#10926) 2019-10-28 14:21:58 -07:00
Dongbo Wang e1203aa31b Skip the flaky test 'TestAppDomainProcessExitEvenHandlerNotLeaking' for now (#10827) 2019-10-17 17:39:14 -07:00
Dongbo Wang 48db3de03e Make the event handler leaking test stable (#10790) 2019-10-16 09:55:41 -07:00
Dongbo Wang 60a930c9ba Add test for the even handler leaking fix (#10768)
Add a test for the even handler leaking fix addressed in #10626 https://github.com/PowerShell/PowerShell/pull/10626
The test is added to verify that PowerShell unregister the 'AppDomain.ProcessExit' event handler when a Runspace closes.
2019-10-11 23:34:53 +05:00
Dongbo Wang a08d5ee103 Support notification on pwsh startup when a new release is available (#10689) 2019-10-08 15:53:14 -07:00
Dongbo Wang 89a6ad5399 Add the missing token text for TokenKind.QuestionMark (#10706) 2019-10-07 08:33:12 -07:00
Dongbo Wang ec105da3f1 Some code cleanup work (#10698)
* Move Utils.GetUserConfigurationDirectory to Platform.ConfigDirectory
* Unify the use of Platform.ConfigDirectory and Platform.CacheDirectory
2019-10-07 14:15:01 +05:00
Dongbo Wang 239c29e0bb Unregister the event handler from 'AppDomain.CurrentDomain.ProcessExit' (#10626) 2019-09-26 21:45:47 +00:00
Dongbo Wang 74517923cf Make Add-Type usable in application that hosts PowerShell (#10587) 2019-09-25 16:26:19 -07:00
Dongbo Wang 22c6fb4a87 Merge v7.0.0-preview.4 release branch to master 2019-09-19 11:33:19 -07:00
Dongbo Wang 8904faf665 Merged PR 10011: Update README.md and metadata.json for 7.0.0-preview.4
Update README.md and metadata.json for 7.0.0-preview.4
2019-09-17 17:57:59 +00:00
Dongbo Wang f6c220cdd9 Revert the PR "Make ForEach-Object faster for its commonly used scenarios" (#10485)
It turns out this optimization brings in a breaking change: `$MyInvocation` is different comparing to before the optimization change. I tried to fix the breaking change, but couldn't without introducing more hacky code. Given that, that PR should be reverted.
2019-09-04 22:12:30 -07:00
Dongbo Wang 5069c7d6a6 Support ternary operator in PowerShell language (#10367) 2019-09-04 13:22:33 -07:00
Dongbo Wang ff29282713 Make ForEach-Object faster for its commonly used scenarios (#10454) 2019-08-30 12:09:19 -07:00
Dongbo Wang b77228906d Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385) 2019-08-23 09:09:34 +05:00
Dongbo Wang 0d817aa547 Update 'Microsoft.PowerShell.CoreCLR.Eventing' to resolve conflict with 'System.Diagnostics.EventLog' (#10305)
* Update 'Microsoft.PowerShell.CoreCLR.Eventing' to resolve conflicts
* Add reference to 'System.Diagnostics.EventLog' to build Microsoft.PowerShell.Commands.Diagnostics on Unix
* Stop compiling Get/New-WinEvent on Unix
2019-08-08 17:44:54 +05:00
Dongbo Wang bf5694ebf5 Revert the temporary change (#10260) 2019-07-31 13:23:57 -07:00
Dongbo Wang d2e81dbc13 Special case the posix locale in WildcardPattern (#10186) 2019-07-26 10:58:37 -07:00
Dongbo Wang 8f5b2c241e Use 'Platform.IsWindowsDesktop' instead of checking both NanoServer and IoT (#10205) 2019-07-25 17:24:57 -07:00
Dongbo Wang df9d9043bb Add the license header to nanoserver.tests.ps1 (#10171) 2019-07-16 12:56:55 -07:00
Dongbo Wang 60da027342 Skip JumpList on NanoServer and IoT (#10164) 2019-07-15 17:04:54 -07:00
Dongbo Wang a4e397697c Skip JumpList on NanoServer and IoT (#10164) 2019-07-15 17:02:18 -07:00
Dongbo Wang 201d7aa275 Make Foreach-Object 2 times faster by reducing unnecessary allocations and boxing (#10047) 2019-07-08 10:21:47 -07:00
Dongbo Wang 0bb122b193 Use a static cache for PSVersionInfo.PSVersion to avoid casting SemanticVersion to Version very time accessing that property (#10028) 2019-07-04 09:13:41 +05:00
Dongbo Wang 6d8dd92759 Add fast path for wildcard patterns that contains no wildcard characters (#10020) 2019-07-02 11:25:09 -07:00
Dongbo Wang 026a8f1f41 Avoid the int[] and int[,] allocation when tokenizing line comments and matching wildcard pattern (#10009)
- Reusing the same 2-dimensional integer array for processing line comments in the same Tokenizer.
- Use ArrayPool<int> in PatternPositionVisitor to avoid creating transient int[].
2019-06-28 08:14:41 +05:00
Dongbo Wang 9dfec6ca84 Remove dead code about 'IsTransparentProxy' (#9966) 2019-06-21 09:12:09 +05:00
Dongbo Wang 94b6b6f4f7 Clean up the use of 'SetProfileRoot' and 'StartProfile' in ConsoleHost (#9931)
* Clean up the use of 'SetProfileRoot' and 'StartProfile' in ConsoleHost
* Remove 'pwsh.pdb' from our component file list
2019-06-19 11:34:47 +05:00
Dongbo Wang c684902fba Use the original precision (prior-dotnet-core-3) for double/fload-to-string conversion (#9893)
.NET Core changes to return "shortest roundtrippable string" by default for the ToString() method of double and float types. This results in ToString() for double/float values sometimes return a string in 17-digit/9-digit precision format. This PR updated the double/float-to-string conversion in PowerShell to continue using the old precision specifier before the change in .NET Core 3.0.
2019-06-19 08:56:43 +05:00
Dongbo Wang 66c628f1b0 Attempt to work around the zip download issue in Azure DevOps Windows CI (#9911) 2019-06-17 09:05:37 -07:00
Dongbo Wang 687697bc90 Fix the failed test and update 'Publish-TestResults' to make AzDO fail the task when any tests failed (#9457) 2019-04-25 14:01:05 -07:00
Dongbo Wang 609d610c71 Allow CI to run on branches with this name pattern: feature* (#9415) 2019-04-19 11:27:33 -07:00
Dongbo Wang e299a30128 Fixing test run crash by not passing script block to the callback (#9298) 2019-04-08 11:06:27 -07:00
Dongbo Wang 74b71f2f39 Style: Update StyleCop rules (#8500) 2019-04-03 10:09:56 +05:00
Dongbo Wang 24d3152f00 Make Start-Job throw terminating exception when -RunAs32 is specified in 64-bit pwsh (#9143) 2019-03-18 10:23:29 -07:00
Dongbo Wang cdb28a1067 Make 'Start-Job' throw terminating error when PowerShell is being hosted (#9128) 2019-03-13 17:57:42 -07:00
Dongbo Wang 50f3e7f10e Update the task-based async APIs added to PowerShell to return a Task object directly (#9079)
Update the task-based async APIs added to PowerShell to not use the `aysnc/await` keywords, but to return a `Task` object directly.
There is nothing to continue on after the `Task.Factory.FromAsync` call in those methods, so there is not need to use `aysnc` and `await` keywords, which turns the method into a state machine class unnecessarily.
2019-03-07 11:24:31 -08:00
Dongbo Wang 5d54f1aa38 Make xUnit tests run sequentially to avoid race conditions caused by manipulating 'powershell.config.json' in tests (#8945) 2019-02-22 11:57:10 -08:00
Dongbo Wang 8617363089 Use the OperationCancellationException to replace the StoppingException in 'ConvertToJson' (#8920) 2019-02-20 23:55:39 -08:00
Dongbo Wang 12547c01e8 Add complete xml docs for ConvertToJsonContext constructors (#8737) 2019-01-25 12:02:41 -08:00
Dongbo Wang c35fd70b15 Simplify the declaration of new experimental features (#8726) 2019-01-25 11:57:28 -08:00
Dongbo Wang 1264a00a76 Update packaging script to build reference assembly targeting netcoreapp2.1 and use actual .csproj files (#8729) 2019-01-25 11:10:47 -08:00
Dongbo Wang cab8f26386 Generate and deploy reference assembly for Microsoft.PowerShell.Commands.Utility.dll (#8716)
Update `New-ReferenceAssembly` and `New-UnifiedNugetPackage` to generate reference assembly for `Microsoft.PowerShell.Commands.Utility.dll` and properly deploy it for `Microsoft.PowerShell.Commands.Utility` NuGet package and `Microsoft.PowerShell.SDK` NuGet package.

An incremental step to fix, eventually, #8121
2019-01-23 11:43:18 -08:00
Dongbo Wang 86516ad0b6 Generate and deploy reference assembly for Microsoft.PowerShell.Commands.Utility.dll (#8716)
Update `New-ReferenceAssembly` and `New-UnifiedNugetPackage` to generate reference assembly for `Microsoft.PowerShell.Commands.Utility.dll` and properly deploy it for `Microsoft.PowerShell.Commands.Utility` NuGet package and `Microsoft.PowerShell.SDK` NuGet package.

An incremental step to fix, eventually, #8121
2019-01-23 11:42:32 -08:00
Dongbo Wang 9ceddc0dfe Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
We have the public API `JsonObject.ConvertFromJson` to convert from JSON string in the PowerShell context. It would be good to have a public API for conversion to JSON. This PR refactors the `ConvertTo-Json` cmdlet to move the core implementation to `JsonObject.ConvertToJson`, and make `ConvertTo-Json` call that public method.

This would help the Azure Function PowerShell worker. Currently, we depends on [calling the cmdlet](https://github.com/Azure/azure-functions-powershell-worker/blob/729710d2595b4b96abd4fa5a5547fe880e98bfa6/src/PowerShell/PowerShellManager.cs#L198-L205) to convert object to JSON which is expensive. Once we have the public method `JsonObject.ConvertToJson` exposed, we can call the API directly to avoid a command invocation.

# Conflicts:
#	test/Test.Common.props
2019-01-23 10:41:19 -08:00
Dongbo Wang c606b1ca37 Refactor ConvertTo-Json to expose JsonObject.ConvertToJson as a public API (#8682)
We have the public API `JsonObject.ConvertFromJson` to convert from JSON string in the PowerShell context. It would be good to have a public API for conversion to JSON. This PR refactors the `ConvertTo-Json` cmdlet to move the core implementation to `JsonObject.ConvertToJson`, and make `ConvertTo-Json` call that public method.

This would help the Azure Function PowerShell worker. Currently, we depends on [calling the cmdlet](https://github.com/Azure/azure-functions-powershell-worker/blob/729710d2595b4b96abd4fa5a5547fe880e98bfa6/src/PowerShell/PowerShellManager.cs#L198-L205) to convert object to JSON which is expensive. Once we have the public method `JsonObject.ConvertToJson` exposed, we can call the API directly to avoid a command invocation.
2019-01-23 10:39:12 -08:00
Dongbo Wang 7054096aef Update README.md (#8684)
The last two commits to this file "broke" both  "Developing and contributing"(link is missing) and "Support" (don't know what it didn't format correctly.
This commit fixes both cases.
2019-01-18 11:21:23 -08:00
Dongbo Wang c2dfae8ccb Fix 'FixupFileName' to not load resolved assembly during module discovery (#8634) 2019-01-15 16:22:25 -08:00
Dongbo Wang ab75626f22 Fix installing fpm and ronn in macOS CI by avoid installing docs for them (#8656) 2019-01-15 14:23:59 -08:00
Dongbo Wang 4a63201139 Remove 'en-us' from our doc links (#8602) 2019-01-07 17:11:17 -08:00
Dongbo Wang 289981a017 Change 'String' to 'string' for simple references (#8519) 2018-12-22 14:26:06 +05:00
Dongbo Wang 140a66ca73 Change 'Int32' to 'int' for simple references in variable declaration (#8518) 2018-12-22 12:33:10 +05:00
Dongbo Wang c5733f872c Style: Member access symbols should be followed with member name (#8517) 2018-12-22 12:15:47 +05:00
Dongbo Wang 8d27eb44b1 Style: Remove extra space before colon in named parameters (#8504) 2018-12-21 10:26:34 -08:00
Dongbo Wang 56ad1d3a65 Style: Use the shorthand of the nullable type (#8501) 2018-12-21 10:07:01 -08:00
Dongbo Wang 2bfbcd4f07 Remove empty lines; correct space on closing square brackets, negative signs, and generic brackets (#8508) 2018-12-21 12:23:04 +05:00
Dongbo Wang e999e1dba5 Remove space after new keyword in implicitly typed array allocation (#8505) 2018-12-21 12:19:58 +05:00
Dongbo Wang 2fbda4e62b The static keyword should be right after access modifier (#8506) 2018-12-21 11:56:05 +05:00
Dongbo Wang ff227729d3 Remove comments after closing bracket (#8503) 2018-12-21 11:54:10 +05:00
Dongbo Wang c4f569e758 Remove space character after '!' (#8507) 2018-12-21 11:51:15 +05:00
Dongbo Wang f1bc79f75f Remove the no longer used RunspaceConfigurationEntry types (#8424) 2018-12-09 20:57:26 -08:00
Dongbo Wang 2a12fb53e5 Remove unneeded catch/throw from 'mkdir' and 'oss' functions (#8425) 2018-12-09 20:53:32 -08:00
Dongbo Wang 2dcf52f3fc Update folder path for storing optimization profile and add test to validate loaded assemblies and libraries on startup (#8406)
- Update folder path for storing optimization profile file.
- Add test to validate loaded assemblies and libraries on startup.
2018-12-06 14:26:09 -08:00
Dongbo Wang c1e171622a More changes and cleanup to reduce the startup time (#8396)
Major changes are:
- Rename `s_wasSystemPolicyDebugPolicy` to `s_allowDebugOverridePolicy` to make it less confusing. Also slightly refactor `HelperSecurity.psm1` and `ConstrainedLanguageDebugger.Tests.ps1` to remove unneeded code. There is no functional change in this commit.
- Remove the unneeded static property `IsInbox`, as PowerShell Core won't be shipped in-box with Windows in the foreseeable feature. Even if we do in future, we won't be needing it because Windows PowerShell will probably be gone by that time.
- Update 'BindRunspace' to avoid getting all commands and unneeded method calls.
- Avoid creating a `IsSafeValueVisitor` every time when `IsScriptBlockInFactASafeHashtable` runs.
2018-12-05 18:29:50 -08:00
Dongbo Wang a11810bf33 Improve powershell startup time (#8341)
Major changes are as follows:
- Avoid `SecuritySupport.IsProductBinary` and unnecessary AMSI/suspicious code scan at startup time
   - Update `CompiledScriptBlockData.IsProductCode` to avoid unnecessary calls to `IsProductBinary`, which attempts to retrieve catalog signature of the target file.
   - Update `PerformSecurityChecks` to skip AMSI and suspicious code scan for the `.psd1` file that contains a safe `HashtableAst` only.
- Use customized `ReadOnlyBag` instead of `ImmutableHashSet` so that we can avoid loading the `System.Collections.Immutable.dll` completely.
- Replace `SHA1` with `CRC32` when generating module analysis cache file name
   - This remove the loading of `System.Security.Cryptography.Algorithms.dll` at startup
- Move `ConvertFrom-SddlString` to C# to remove the `Utility.psm1` file.
- Crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation
   - Even pwsh with crossgen assemblies spends a lot time in jitting at the startup, about `191.6ms` comparing with `24.7ms` for Windows PowerShell.
   - Jitting `Microsoft.ApplicationInsights.dll` takes about `51.6ms`.
   - By crossgen `Microsoft.ApplicationInsights.dll` and enable tiered compilation, the jitting time drops to about `98.9ms`.
2018-12-02 12:52:39 -08:00
Dongbo Wang 9b94f18ccf Fix BeginInvoke/EndInvoke to return results when Stop or BeginStop/EndStop was called previously (#7917)
The root cause is that `OutputBuffer` is not cleaned up (set to `null`) in `Stop` and `BeginStop/EndStop` when the powershell instance owns the `OutputBuffer` object. Since the pipeline has been intentionally stopped by the caller, the `OutputBuffer` should be set to `null` as well when it's owned by the PowerShell instance, just like how it's cleaned up in `EndInvoke`.
2018-10-12 10:46:57 -07:00