Skip to content

Commit a578ed4

Browse files
rjmholtandyleejordan
authored andcommitted
Update CHANGELOG for v3.0.0
1 parent 83244eb commit a578ed4

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

CHANGELOG.md

+75
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,80 @@
11
# PowerShell Editor Services Release History
22

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

0 commit comments

Comments
 (0)