Skip to content

Commit 85a772c

Browse files
committed
Update CHANGELOG for v2021.10.3-preview
1 parent 2fa9c5c commit 85a772c

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

CHANGELOG.md

+81
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,86 @@
11
# PowerShell Extension Release History
22

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+
384
## v2021.10.2
485
### Thursday, October 28, 2021
586

0 commit comments

Comments
 (0)