Scala 2.11.0
Состоялся выпуск новой версии языка программирования Scala: 2.11.
Основные изменения:
В библиотеке коллекций: У неизменяемых хеш-таблиц и множеств увеличена производительность операций фильтрации, объединения и других подобных. В большем количестве случаев стало возможным использование компонентов исходной таблицы при выполнении операций создающих новые структуры. Добавлены специализированные реализации хеш-таблиц в которых ключами выступают длинные целые (LongMap) и ссылочные типы (AnyRefMap). Использование этих реализаций позволяет повысить производительность до 2-х и до 4-х раз соответственно. Модуляризация: Размер ядра библиотеки языка Scala уменьшен на 20% за счет выделения в отдельные модули компонентов, связанных с работой с XML, синтаксическим анализом, библиотекой построения пользовательского интерфейса Swing и плагина поддержки ограниченных продолжений. Произведена внутренняя модуляризация компилятора, работа над которой будет продолжена в следующих версиях. Большая работа была произведена в экспериментальной части компилятора — поддержке интроспекции, макросов и quasiquotes. Изменения в back-end компилятора: Новый экспериментальный оптимизирующий back-end для генерации байт-кода GenBCode Экпериментальный вариант генерации байт-кода для лямбда функций, который позволит в будущем лучше интегрироваться с замыканиями из Java 8. Экспериментальная поддержка генерации Javascript в отдельном проекте Scala-JS Удалены остатки давно заброшенного модуля для генерации байт-кода .NET Повышена производительность инкрементального компилятора, а так же некоторая оптимизация пакетного компилятора. REPL получил несколько удобных команд для отладки типов высшего порядка. Так же REPL теперь может быть подключен как скриптовый язык через API JSR-223. При сборке теперь будут показываться предупреждения о неиспользуемых локальных переменных и типах, а так же о ситуации когда var может быть заменен на val. Новая версия является полностью совместимой по исходным текстам для программ, компилирующихся без предупреждений о использовании устаревших конструкций языка при сборке предыдущей версией 2.10. Совместимость экспериментальных функций языка (например интроспекции и макросов) не гарантируется. Новая версия не является бинарно совместимой с предыдущей.
scala