Релиз GNUstep Objective-C Runtime 1.6

Представлен выпуск свободной библиотеки GNUstep Objective-C Runtime 1.6 (libobjc2), в которой реализовано подмножество функциональности runtime-компонентов, используемых в Mac OS X 10.7 и iOS 5. Библиотека позволяет разработчикам ПО использовать данные компоненты в своих проектах на языках Objective-C и Objective-C++ на любых свободных платформах.

Из аппаратных архитектур поддерживаются ARM, x86 и x86-64, поддержку других архитектур планируется реализовать в будущих выпусках. Библиотека полностью обратно совместима с GCC 4.2.1 Objective-C ABI, а также поддерживает расширенный ABI, используемый в таких проектах, как Clang и Etoile LanguageKit. Кроме Apple Objective-C Runtime API, библиотека также поддерживает часть GCC API с целью обеспечения совместимости со старыми приложениями.

Некоторые особенности GNUstep Objective-C Runtime 1.6:

  • Совместимость с новым runtime API, представленным в Mac OS X 10.7 и iOS 5;
  • Поддержка маленьких объектов (Small Objects). На 32-разрыдных системах runtime допускает один small object класс, на 64-разрядных - 4;
  • Поддержка ориентации объектов в prototype-стиле (объектная модель JavaScript). Можно добавлять методы и связанные ссылки в отдельным объектам и клонировать их;
  • Поддержка совместимых с продуктами Apple функций objc_msgSend() для платформ x86, x86-64 и ARM. Использование данных функций примерно в два раза сокращает затраты ресурсов на отправку сообщений, что в результате приводит к уменьшению размера бинарных данных на 10%;
  • Обеспечение использование соответствующих POSIX файлов сборки Makefile;
  • Улучшения благодаря задействования оптимизаций LLVM. Тестирование на системе с CPU Xeon2.8GHz цикла из 200 млн классов на отправку сообщений было потрачено 0.8 секунды при включении всех оптимизаций, при использовании только опции "-Os" на выполнение теста ушло 2 сек., при включении явного кэширования IMP в коде - 1.2 сек. Для сравнения тот же текст при использовании GCC Objective-C runtime выполняется за 11 секунд при сборке с Clang/LLVM или GCC.


Источник:
http://www.opennet.ru/opennews/art.shtml?num=32399

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>