PowerShell Core 6.1 Preview3


Вышел PowerShell Core 6.1 Preview3.

https://github.com/PowerShell/PowerShell/releases

Что появилось нового и хорошего? Теперь PowerShell Core работает на .Net Core 2.1. Это дает два новых преимущества, о которых я уже писал ранее. Во-первых, все работает быстрее из-за множества оптимизаций в .Net Core 2.1. Во-вторых, теперь вместо библиотеки curl на Unix системах используется родная реализация HttpClient. Это исключило конфликты с версиями curl и добавило быстродействия.

Что еще?

  1. Для предварительных версий изменились имена пакетов и имена исполнимых файлов, которые теперь имеют префикс preview.
  2. Доступен окончательный вариант обновленного командлета Add-Type. Из него только удалили поддержку VisualBasic, чтобы уменьшить размер дистрибутива.
  3. Теперь работает подстановка (IntellySense) для хешей.
  4. Исправлен Set-Date на Unix.
  5. Убрана функция more в пользу стандартных пейджеров (#6059).
  6. Добавлен Windows Compatibility Pack 2.0.0. Это позволит вернуть некоторые возможности, которые еще не портированы на Unix. В частности это использует WindowsCompatibility модуль.
  7. Добавлена поддержка Ubuntu 17.10 и 18.04 (#6769).
  8. Теперь используем PSReadLine 2.0.0-beta2. Пробуйте и пишите о багах.
  9. И еще много чего — смотрите Release Notes.
Реклама

Немного о том что будет в PowerShell Core 6.1


Как я уже писал, PowerShell Core 6.1 будет работать на основе .Net Core 2.1. Это уже точно. Команда разработчиков .Net Core сделала много усовершенствований, в результате которых все приложения работают быстрее. PowerShell Core 6.1 стал таже быстрее от 5 до 20% в некоторых тестах. Плюс добавлено несколько улучшений в сам PowerShell Core, что сделать его быстрее.

Вэб командлеты теперь будут работать на основе новой реализации HTTP Client в .Net Core. В результате их скорость возрастёт. Также убрана зависимость от библиотеки curl на Unix системах. На самом деле убрана зависимость ещё от нескольких библиотек, что упростит установку на многих версиях Unix.

И наконец MSFT объявила, что целый ряд команд активно работают над портированием своих модулей на PowerShell Core. Полный список не озвучен. Видимо сами еще не знают, что успеют сделать. Ожидаем приятных новостей. Когда? По плану в конце июня.

Также команда MSFT PowerShell активно работает над Windows PowerShell Compatibility Pack. Этот модуль призван позволить запускать под PowerShell Core всё, что пока не совместимо с ним. Этот проект вышел из стадии анонса и активно развивается. Уже к концу этой недели вы сможете попробовать его в деле с последними сборками PowerShell Core. Присоединиться к проекту вы можете уже сегодня.

PowerShell Core стал быстрее


Производительность PowerShell Core выросла на 18% после перехода на .Net Core 2.1 RC1.

Именно настолько стал быстрее выполняться наш пакет тестов в репозитории.

Вы сможете ощутить это на своих скриптах уже скоро — ожидаем Preview3 в ближайшее время. Скорее всего это уже будет на базе .Net Core 2.1. RTM.

Помимо пассивного увеличения производительности за счет перехода на .Net Core 2.1 стоит ожидать увеличения производительности за счет использования новых возможностей, которые появились в C# 7.2 и .Net Core 2.1. Об этом я писал в предыдущих постах. Если вы знаете сценарии, где PowerShell слишком медленный и прожорливый, то пишите, открывайте обсуждения в репозитории.

PowerShell Core 6.1 Preview2


Как-то незаметно вышел PowerShell Core 6.1 Preview2.

Самое интересное:

Add the parameter -Not to Where-Object (#6464)

Make LanguagePrimitive.GetEnumerable treat DataTable as Enumerable (#6511)

Fix formatting of tables where headers span multiple rows (#6504)

Add -Resume Feature to WebCmdlets (#6447)

Add ported Test-Connection cmdlet (#5328)

Add -AsArray parameter to ConvertoTo-Json command

Add Test-Json cmdlet (NJsonSchema) (#5229)

Enable PowerShell.sln to work in VisualStudio (#6546) (Полностью компиляция всё еще не работает)

Также сделаны некоторые оптимизации в коде для повышения производительности и более экономного использования ресурсов.

Ожидаем выхода Preview3. Таv уже есть много интересного и исправленного. И мы будем определнно уже на .Net Core 2.1! — это само по себе принесет множество улучшений в производительности.

PowerShell Core 6.1 Preview1


Уже пару недель как вышла первая предварительная версия PowerShell Core 6.1.

Приглашаю всех попробовать её в деле, если вы ещё не сделали это. Конечно это лучше делать осмысленно: погонять свои скрипты и поискать баги, попробовать новые фичи.

Список изменений огромный https://github.com/PowerShell/PowerShell/releases/tag/v6.1.0-preview.1

Самое примечательное на мой взгляд:

Add ForEach and Where methods to PSCustomobject (#5756)

Add Count and Length properties to PSCustomobject (#5745)

Add -settingsfile to pwsh to support loading a custom powershell config file. (#5920)

Enable conversions from PSMethod to Delegate (#5287)

Add lambda support to -replace operator (#6029)

Set pipeline thread stack size to 10MB (#6224)

Множество дополнений в Web Cmdlets

Add standard deviation implementation on Measure-Object (#6238)

PowerShell Core — улучшения в операторе диапазонов


Теперь вы можете делать:

'A'..'B' | ForEach-Object { $_ }

Особенность в том, что  "0".."9" ( ‘0’..’9′) будет по-прежнему возвращать числа как в Windows PowerShell — это более ожидаемое поведение, которое широко используется.

Первоисточник.

Новый Add-Type


Да, он готов. PowerShell Core 6.0 GA вышел с обрезанной версией. Сейчас ситуация улучшается. Главное изменение — Add-Type использует Roslyn со всеми его возможностями. Восстановлена работа всех параметров. Расширена функциональность: теперь можно откомпилировать не только один файл, как раньше, а любое количество файлов за один раз. Улучшена производительность: устранен один баг (повторная обработка исходного кода), добавлен контроль изменений исходного кода, т.е. командлет не будет второй раз компилировать и загружать код, если исходный код не изменился. Улучшены сообщения об ошибках возвращаемых компилятором.

Работа фактически завершена. Но! Возник один вопрос: с добавлением поддержки VisualBasic размер дистрибутива вырос сразу на 5МБ — это относительно много, и это беспокоит команду разработчиков. MSFT хочет получить обратную связь от пользователей: хотите ли вы иметь поддержку Visual Basic в Add-Type? Этот вопрос они будут задавать на всех ближайших конференциях.

Скажите нам, что вы думаете. Вы можете написать свое мнение прямо по ссылке. Кроме того, некоторые пользователи уже попросили добавить поддержку F# (что технически не сложно) и вернуть поддержку JS (пока не ясно, как это сделать). Выскажете своё мнение об этом тоже.