Буй, проект, призванный дополнить Фаро добавлением полезных расширений, достиг версии 5.0.0.
Поддерживаемые версии Pharo: 6.1 — 32 бита и 7.0 — 32 и 64 бита. Критические изменения касаются только организации пакета, поэтому вам, возможно, придется адаптировать свои базовые зависимости, но остальная часть кода обратно совместима с версией 4.
Новые функции в этой версии
В иерархию коллекций добавлено несколько полезных расширений:
maxUsing:
,minUsing:
,maxUsing:ifEmpty:
иminUsing:ifEmpty:
были добавлены в коллекцию, что позволило пользователю предоставить замыкание, используемое для сравнения объектов.copyFirst: copyLast: copyNoMoreThanFirst:
иcopyNoMoreThanLast:
были добавлены в SequenceableCollection. Проверьте документацию, чтобы заметить различия сfirst:
иlast:
К базовым классам Pharo были добавлены и другие расширения:
BlockClosure>>#on:except:do
был добавлен. Pharo получил поддержку исключения некоторых исключений в обработчике в предыдущем выпуске с помощью сообщения-
для создания набора исключений, но мы считаем, что это расширение обеспечивает более четкую семантику.Behavior>>#allLeafSubcasses
позволяет получить подклассы класса, у которого нет подклассов.
В этом релизе добавлено два алгоритма работы с коллекциями:
BalancedDistributionInBucketsAlgorithm
реализует алгоритм, который при заданной начальной коллекции и максимальном размере корзины возвращает список корзин (с учетом максимального размера корзины), включая все элементы коллекции, распределенные в корзинах сбалансированным образом (поэтому ни одна корзина не будет выглядеть почти пустой).BinarySearchAlgorithm
реализует двоичный поиск, работающий с ранее отсортированной коллекцией. Учитываяsearch key
, он вернет для него индекс вставки. Он полезен в качестве строительного блока для нарезки коллекций с предоставленными свойствами в заданном диапазоне или вставки новых элементов в нужное место.
Другие улучшения
RegexCondition
производительность была улучшена, раньше регулярное выражение создавалось каждый раз при оценке условия, теперь оно кэшируется при инициализации.- По мере приближения к выпуску Pharo 7 соответствующие задания сборки больше не помечаются как допущенные к сбою.
- Документация улучшилась, охватив почти все предоставляемые функции.
- Структура проекта была адаптирована в соответствии с будущими рекомендациями для экосистемы.
Присоединяйтесь к нам на ba-st и ознакомьтесь с новым проектом правила сообщества.