|
1 | 1 | # PowerShell Extension Release History
|
2 | 2 |
|
| 3 | +## v2021.10.3-preview |
| 4 | +### Thursday, October 28, 2021 |
| 5 | + |
| 6 | +#### [vscode-powershell](https://github.com/PowerShell/vscode-powershell) |
| 7 | + |
| 8 | +No changes! New preview for PowerShell Editor Services v3.0.0! |
| 9 | + |
| 10 | +#### [PowerShellEditorServices](https://github.com/PowerShell/PowerShellEditorServices) |
| 11 | + |
| 12 | +This preview release includes a complete overhaul of the core PowerShell engine |
| 13 | +of PowerShell Editor Services. |
| 14 | +This represents over a year's work, |
| 15 | +tracked in [PSES #1295](https://github.com/PowerShell/PowerShellEditorServices/issues/1295) |
| 16 | +and implemented in [PSES #1459](https://github.com/PowerShell/PowerShellEditorServices/pull/1459), |
| 17 | +and is our answer to many, many issues |
| 18 | +opened by users over the last few years. |
| 19 | +We're hoping you'll see a marked improvement |
| 20 | +in the reliability, performance and footprint |
| 21 | +of the extension as a result. |
| 22 | + |
| 23 | +Previously the Integrated Console was run |
| 24 | +by setting threadpool tasks on a shared main runspace, |
| 25 | +and where LSP servicing was done with PowerShell idle events. |
| 26 | +This lead to overhead, threading issues |
| 27 | +and a complex implementation intended to work around |
| 28 | +the asymmetry between PowerShell as a synchronous, |
| 29 | +single-threaded runtime and a language server |
| 30 | +as an asynchronous, multi-threaded service. |
| 31 | + |
| 32 | +Now, PowerShell Editor Services maintains its own dedicated pipeline thread, |
| 33 | +which is able to service requests similar to JavaScript's event loop, |
| 34 | +meaning we can run everything synchronously on the correct thread. |
| 35 | +We also get more efficiency because we can directly call |
| 36 | +PowerShell APIs and code written in C# from this thread, |
| 37 | +without the overhead of a PowerShell pipeline. |
| 38 | + |
| 39 | +This change has overhauled how we service LSP requests, |
| 40 | +how the Integrated Console works, |
| 41 | +how PSReadLine is integrated, |
| 42 | +how debugging is implemented, |
| 43 | +how remoting is handled, |
| 44 | +and a long tail of other features in PowerShell Editor Services. |
| 45 | + |
| 46 | +Also, in making it, while 6,000 lines of code were added, |
| 47 | +we removed 12,000, |
| 48 | +for a more maintainable, more efficient |
| 49 | +and easier to understand extension backend. |
| 50 | + |
| 51 | +While most of our testing has been re-enabled |
| 52 | +(and we're working on adding more), |
| 53 | +there are bound to be issues with this new implementation. |
| 54 | +Please give this a try and let us know if you run into anything. |
| 55 | + |
| 56 | +We also want to thank [@SeeminglyScience](https://github.com/SeeminglyScience) |
| 57 | +for his help and knowledge as we've made this migration. |
| 58 | + |
| 59 | +Finally, a crude breakdown of the work from the commits: |
| 60 | + |
| 61 | +- An initial dedicated pipeline thread consumer implementation |
| 62 | +- Implement the console REPL |
| 63 | +- Implement PSRL idle handling |
| 64 | +- Implement completions |
| 65 | +- Move to invoking PSRL as a C# delegate |
| 66 | +- Implement cancellation and <kbd>Ctrl</kbd>+<kbd>C</kbd> |
| 67 | +- Make <kbd>F8</kbd> work again |
| 68 | +- Ensure execution policy is set correctly |
| 69 | +- Implement $PROFILE support |
| 70 | +- Make nested prompts work |
| 71 | +- Implement REPL debugging |
| 72 | +- Implement remote debugging in the REPL |
| 73 | +- Hook up the debugging UI |
| 74 | +- Implement a new concurrent priority queue for PowerShell tasks |
| 75 | +- Reimplement the REPL synchronously rather than on its own thread |
| 76 | +- Really get debugging working... |
| 77 | +- Implement DSC breakpoint support |
| 78 | +- Reimplement legacy readline support |
| 79 | +- Ensure stdio is still supported as an LSP transport |
| 80 | +- Remove PowerShellContextService and other defunct code |
| 81 | +- Get integration tests working again (and improve diagnosis of PSES failures) |
| 82 | +- Get unit testing working again (except debug service tests) |
| 83 | + |
3 | 84 | ## v2021.10.2
|
4 | 85 | ### Thursday, October 28, 2021
|
5 | 86 |
|
|
0 commit comments