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 (пока не ясно, как это сделать). Выскажете своё мнение об этом тоже.

Test-Connect — нужна обратная связь


PowerShell Core 6.0 GA вышел без командлета Test-Connection. Причина была банальна: предыдущая реализация работала только на Windows, её удалили, а работу над новой, портированной, версией завершить не успели.

На днях новая версия Test-Connection была добавлена в основную ветку. В описании вы увидите, что это не только ping. Если будет интерес от пользователей, то продолжу добавлять новые возможности в этот командлет.

Вы можете (и сделайте это!) загрузить ночную сборку для Windows и попробовать командлет в действии (и другие новые фичи). Либо ждите Preview2, которая скоро должна выйти. Свои замечания оставляйте в обсуждении.

Нужно проверить дизайн и функиональную часть (работа в скрипте), а также высказать своё мнение, какой должен быть вывод на экран: должны ли мы использовать прогресс-бар или только текстовый вывод, какой должен быть текстовый вывод, должен ли он эмулировать вывод Windows команд, выводить шапку и завершающую статистику.

Должен отметить, что из-за ограничений в .Net Core версия командлета на Unix-ах работает пока с ограниченной функциональностью.

 

PowerShell Core — голосуем за портирование модулей


После выхода в январе этого года PowerShell Core 6.0 многие его уже опробовали в деле и обнаружили, что некоторые привычные и очень нужные модули не работают. Одна из причин в том, что эти модули написаны в основе PSSnapin, который был безвозвратно удален из PowerShell.

Возникает вопрос, что с этим теперь делать? Читать далее