LINUX.ORG.RU

Программирование


43

0

Всего сообщений: 688

Статья «Внутренние функции компилятора GCC для обработки данных в векторной форме»

Группа Документация

Высокая скорость работы очень важна для мультимедийных и графических приложений, а также приложений, осуществляющих обработку сигналов. Компилятор GCC позволяет использовать промежуточный вариант между ассемблером и стандартным языком C, который позволяет повысить скорость работы приложения и использовать специфические возможности центрального процессора, не используя ассемблер: внутренние функции (compiler intrinsics). Эта статья описывает внутренние функции компилятора GCC, при этом выделяются принципы использования этих функций на примере трех платформ: X86 (используются технологии MMX, SSE и SSE2); Motorоla, а сейчас Freescale (используется технология Altivec); и ARM Cortex-A (используется технология Neon).

>>> Подробности

 ,

vikos
()

Вышла новая версия ECL 12.12.1 — реализации языка программирования Common Lisp

Группа Open Source

ECL (Embeddable Common Lisp) — это одна из многочисленных реализаций языка программирования Common Lisp со стандартом ANSI INCITS 226-1994 (R2004).

Основной особенностью ECL является то, что он компилирует исходный Common Lisp код в байт-код или в портабельный Си-код, который затем компилируется стандартным Си компилятором текущей платформы, что делает компилятор ECL легко переносимым — например известны порты ECL на ARM которые работают на платформах Android и iOS.

ECL также может легко встраиваться в приложения написанные на других языках, как скриптовый язык, но с более богатыми возможностями: Common Lisp, компиляция в байт-код или машинный код (если доступен компилятор языка Си).

  • Основые видимые изменения:
    • DELETE-FILE, RENAME-FILE, chdir, mkdir и chmod теперь сигналят ошибки (работы с файлами).
    • Обновлен ASDF со встроенным ASDF-BUNDLE вместо ASDF-ECL.
    • SYS:FUNCTION-LAMBDA-LIST снова работает с макросами и специальным операторами.
    • Линковка с ecl-help для безпроблемного использования DOCUMENTATION в уже готовых приложениях.
    • ECL теперь генерирует более читабельный Си-код с правильными отступами, меньшим количеством меток и с более стандартными конструкциями.
  • Исправленные ошибки:
    • Улучшена производительность новой библиотеки для поддержки SMP.
    • Исправления ошибок в очереди POSIX сигналов, которые вызывали повторяющуюся потерю Ctrl-C.
    • Исправления опечаток, которые вызывали проблемы поддержки long long и unsigned long long.
    • Код в ecl_import_current_thread() не был совместим GC API.
    • Версия COMPILE-FILE, которая компилировала в байт-код, не поддерживала :EXTERNAL-FORMAT параметр.
    • Скомпилированная версия DOTIMES вычисляла выходную форму в неправильном контексте.
    • ecl_import_current_thread() не связывала *CURRENT-PROCESS*.
    • Изменен алгоритм для определения является ли функция замыканием или нет, и который тип Си-реализации замыкания необходим для этого.
  • Мета-объектный протокол:
    • Теперь ECL полностью поддерживает MOP.
    • Полностью изменен протокол начального этапа сборки/загрузки классов (class bootstrapping protocol), который теперь проще и более эффективен, позволяя нам иметь доступ ко всем классам на начальном этапе (сборки образа).
    • Все методы доступа переопределены, как обобщеные функции, после начальной сборки образа (bootstrapping) ECL.
    • Методы доступа стандартных классов теперь оптимизированы. Это стало возможным благодаря тому, что они полагаются на SLOT-VALUE, которые (по MOP) не могут быть переопределены или «обернуты» без ввода новых мета-классов.
    • Компилятор больше не «инлайнит» методы доступа к слотам мета-объектов, которые могут быть переопределены.
    • (SETF SLOT-VALUE) не всегда возращал присвоенное значение.
    • SLOT-BOUNDP возвращал дополнителные значиния при ошибках.
    • SLOT-VALUE-USING-CLASS не вызывал SLOT-UNBOUND

Исходный код ECL можно загрузить по адресу:

http://sourceforge.net/projects/ecls/files/latest/download

>>> Подробности

 , , ,

gensym
()

Code::Blocks 12.11 — кроссплатформенная интегрированная среда разработки на языке С++

Группа Open Source

Вышла новая версия кроссплатформенной расширяемой плагинами среды разработки на языках С/C++ — Code::Blocks 12.11.

Новая версия включает в себя множество улучшений по сравнению с предыдущей версией 10.05, с полным списком которых можно ознакомиться здесь. Вот некоторые из них:

Общие изменения

  • Добавлен пункт контекстного меню для отображения файла в дереве проекта.
  • Добавлена возможность разворачивать окно редактора по двойному клику по вкладке.
  • Добавлено всплывающее окно, показывающее полный путь к файлу и проекту, для вкладки редактора.
  • Возможность «прятать» вкладки редактора (View → Hide editor tabs или Ctrl+H).
  • Добавлены настройки для терминала в Linux.

( читать дальше... )

>>> Подробности

 , ,

grem
()

Среда разработки Lazarus 1.0.4

Группа Open Source

3 декабря 2012 г. команда разработчиков Lazarus Team представила очередную версию среды разработки программного обеспечения для компилятора FreePascal — Lazarus 1.0.4 (список изменений).

Среди изменений и исправлений ошибок:
1. Debugger - исправлено падение программы при использовании Inspect-Dialog в случае «вложенных» обновлений; исправлено появление «Range check error»; отключена функция «run to cursor» когда Debugger остановлен; исправлен «бесконечный цикл» при вычислении значений в окошке watch.
2. IDE (Редактор кода) - теперь выделенный текст используется в качестве критерия поиска по умолчанию только если курсор внутри выделения или наведён на него; исправлена ошибка падения программы при закрытии последней вкладки по Ctrl+F4 в случае когда было активно автозаполнение.
3. SynEdit - исправлена ошибка чувствитеьности к региству при поиске/замене регулярных выражений; исправлена ошибка невозможности копировать/вставлять текст с помощью средней кнопки выши когда SynEdit находится в режиме read-only;
и многие другие, включая исправления ошибок элементов, связанных с библиотеками GTK2, Qt, LCL

Минимальные системные требования:

Minimum requirements:
Windows:       98, 2k, XP, Vista, 7, 32 or 64-bit
FreeBSD/Linux: gtk 2.8 or qt4.5, 32 or 64-bit
Mac OS X:      10.5, LCL only 32-bit, non LCL apps can be 64-bit

Как и предыдущая версия Lazarus 1.0.2, бинарная сборка содержит fpc-2.6.0.

Помимо основной страницы загрузки на sourceforge доступна загрузка с svn, а также зеркала (1, 2, 3) для тех, у кого заблокирован доступ к sourceforge.

>>> Подробности

 , , , ,

grem
()

Вышел GNU Guile 2.0.7

Группа Open Source

Вышла новая версия реализации языка Scheme — GNU Guile 2.0.7. Несмотря на незначительное изменение номера версии, появились несколько интересных нововведений, а именно:

  • Полная поддержка инфиксных выражений (curly-infix-expressions). Теперь вместо (* a (+ b c)) можно писать {a * {b + c}}.
  • Поддержка разных опции чтения (read option) для разных портов.
  • Поддержка вложенных директив future.
  • Специальный синтаксис для добавления путей в переменные окружения GUILE_LOAD_PATH и GUILE_LOAD_COMPILED_PATH в конец списка путей, а не в начало.
  • Исправлен недочет в функции load-in-vicinity, которая не сканировала директории, установленные в переменной %load-compiled-path.
  • Исправлен порядок поиска расширений. Теперь Guile не изменяет для этого переменную окружения LD_LIBRARY_PATH.
  • Функция make-vtable-vtable помечена устаревшей, рекомендуется использовать make-vtable и <standard-vtable>.
  • Оптимизированы вызовы equal? и eqv? для случаев, когда один из аргументов — константа.
  • Новые предупреждения компилятора -Wduplicate-case-datum и -Wbad-case-datum.
  • Многочисленные незначительные улучшения и исправления ошибок.

>>> Подробности

 , , ,

provaton
()

mocl™ — реализация языка программирования Common Lisp для мобильных платформ Android и iPhone/iOS

Группа Open Source

Анонсирована новая реализация языка программирования Common Lisp — mocl™ для мобильных платформ iPhone/iOS и Android.

Пол Грэхэм, основатель Y Combinator, называл Lisp своим «секретным оружием», когда работал над своим web-стартапом. Однако для разработчиков мобильных приложений текущие средства разработки на Common Lisp очень ограничены.

Сегодня Wukix хотел бы с гордостью сообщить о скором выходе первоклассной среды разработки на Common Lisp для мобильных устройств, с новым компилятором и инструментарием, называемыми mocl.

mocl позволяет создавать приложения для Android, iOS и других мобильных платформ, используя выразительный код на Common Lisp. mocl делает это возможным путем компиляции исходного кода на Common Lisp в платформо-ориентированный эффективный Си-код.

Wukix вел разработку mocl в полном секрете в течение почти двух лет. Мы (Wukix) надеемся сделать mocl общедоступным, включая исходный код (финальная лицензия будет еще определена), в начале 2013 года. Тем временем, если вы заинтересованы в тестировании пробной версии и/или отправке отзывов, пожалуйста, пошлите нам запрос по электронной почте на engineering@wukix.com.

Wukix — небольшая компания, располагающаяся в Mountain View, Калифорния.

>>> Подробности

 , , ,

gensym
()

Allegro CL 9.0 Free Express Edition стал доступен для загрузки

Группа Проприетарное ПО

Для загрузки на попробовать стала доступна версия коммерческой реализации языка программирования Common Lisp — Allegro CL 9.0 Express Edition.

Доступны пакеты для:

  • Linux (glibc 2.11 или позже);
  • Mac OS X (10.6 или позже), включает поддержку Lion;
  • FreeBSD (8.2 или позже);
  • Windows (XP, Vista, 7, 8, Server).

Основные новшества и изменения в этой версии:

  • полная поддержка SMP;
  • 820 исправлений и улучшений с последнего релиза;
  • полностью обновлен AllegroServe — вебсервер Franz Inc., написанный на лиспе: автоматическая компрессия/декомпрессия файлов, поддержка chunking, новый выбор опций безопасности, включая TLS v1.0 (также известный как SSL v3.1) протокол для защищенных соединений;
  • улучшена интеграция с Java через модуль jLinker, улучшен протокол, стал проще API;
  • новая и значительно упрощенная инсталляция для графических утилит на Mac 64-бит.

>>> Загрузка

 ,

gensym
()

Lazarus 1.0.2

Группа Open Source

10 октября вышла очередная версия среды разработки программного обеспечения для компилятора Free Pascal — Lazarus 1.0.2. Релиз содержит исправления некоторых багов версии 1.0, вышедшей 28 августа 2012 года, с небольшими изменениями, касающимися LCL и widgetsets. Как и версия 1.0, бинарная сборка содержит fpc 2.6.0.

>>> Подробности

 , , ,

grem
()

Завершён перевод книги «Pro Git»

Группа Документация

Что может быть лучшим подарком на день знаний для линуксоида? Конечно, полезная книга ;) Поэтому команда переводчиков «Pro Git» поднапряглась и доделала перевод книги на русский язык.

«Pro Git» — это довольно обширная обучающая книга о Git от Скотта Шакона — активного участника разработки проектов Git и GitHub. Автор рассматривает в тексте всевозможные аспекты работы с Git'ом, начиная с установки программы и базовых принципов работы децентрализованных систем контроля версий, и заканчивая рассмотрением внутреннего устройства Git'а и созданием валидных объектов в базе Git'а собственными руками. Несмотря на довольно обширный материал и затрагивание довольно специфических тем, книга написана довольно простым языком, содержит массу примеров и иллюстраций, и поэтому должна быть понятна и новичкам, только начинающим знакомиться с системами контроля версий.

Последняя версия перевода книги доступна в форматах pdf, epub, mobi и fb2.
Также доступна онлайн-версия перевода, но она, к сожалению, не обновлялась с мая.

И немного о грустном. Книга «Pro Git» выложена на GitHub под лицензией CC-BY-NC-SA, которая запрещает любое коммерческое использование оригинальной версии книги, а также любой производной работы. Поэтому издать версию книги на русском языке невозможно, как и продавать электронные версии в онлайн-магазинах. Поэтому команда переводчиков с благодарностью примет финансовую поддержку от читателей.

Наши реквизиты:

  • webmoney: R773517907660 (rub); Z477720561250 (usd)
  • яндекс.деньги: 410011547461467
  • paypal: koptev.oleg@gmail.com

Приятного чтения!

 , pro git, ,

GArik
()

TEdit V1

Группа Java

TEdit — кроссплатформенный текстовый редактор с возможностью самообучения в ходе набора и преобразования текста (синтаксиса какого-либо ЯП) при его неоднократной правке со стороны человека. Использует концепт TinyBrain.

>>> Пример

>>> Скачать

>>> Подробности

 , , tedit, tinybrain,

amorpher
()

Вышел GDB 7.5

Группа Open Source

17-го августа вышла новая версия известного отладчика GDB — 7.5. Из новшеств следует отметить следующие:

  • добавлена поддержка языка Go;
  • новые целевые платформы (targets): x32 ABI, microMIPS, Renesas RL78, HP OpenVMS ia64;
  • улучшения скриптового API;
  • добавлена поддержка обратной отладки для платформы ARM;
  • добавлена поддержка SDT (statically defined tracing).

>>> Подробности

 , ,

anonymous
()

Встречайте новый текстовый редактор — Enki

Группа Open Source

В последнее время нередкой стала практика, когда разработчики СПО объявляют о намерении организовать новый проект только при условии финансовой поддержки со стороны пользователей. Нередки также случаи, когда перспективный казалось бы проект, разродившись преальфой, возвращался в преисподнюю.

Создатели же нового текстового редактора Enki избрали иной путь. Работа над редактором ведётся с осени 2011 года, однако лишь 10 августа 2012 разработчики представили на суд публики уже готовый продукт.

( читать дальше... )

Исходные коды распространяются под лицензией GPLv2. На сайте представлены пакеты для операционных систем Ubuntu и Debian.

Разработчики открыты к пожеланиям пользователей, новым предложениям, критике, отчётах об ошибках.

>>> Подробности

 enki, , ,

Heretique
()

Valgrind 3.8.0

Группа Open Source

Valgrind — это инструмент, позволяющий находить в программах недостатки, такие как ошибки при работе с памятью, неправильное разделение потоков, неинициализированные переменные и прочее. В новой версии:

  • Поддержка свежих дистрибутивов Linux (gcc-4.7, glibc-2.16).
  • Поддержка платформы MIPS32/Linux, в обоих форматах: BE и LE.
  • Начальная поддержка x86/Android.
  • Начальная поддержка MacOSX 10.8.
  • Поддержка инструкций Intel AVX и AES.
  • Поддержка инструкций для десятичных чисел с плавающей запятой для архитектуры POWER.
  • Добавлена поддержка реализаций malloc(), находящихся не в libc.so. Это даёт возможность использовать альтернативные реализации malloc() такие как TCMalloc и JEMalloc при запуске в Memcheck, Massif, DRD, Helgrind.
  • Для инструментов, подменяющих вызовы функции malloc() и ей подобных, добавлена опция --redzone-size=<кол-во байт>, которая позволяет задать размер специальных запретных зон вокруг выделяемых блоков памяти. Чем больше размер этих зон, тем больше шанс поймать выход за границы выделенной памяти.
  • Для инструментов, работающих с потоками, добавлен новый планировщик потоков, основанный на алгоритме round-robin. Этот планировщик является более честным и обеспечивает лучшую отзывчивость интерактивных многопоточных программ, а также даёт лучшую воспроизводимость результатов в Helgrind и DRD.
  • Улучшение производительности при наличии большого количества правил для подавления ошибок.
  • Улучшена поддержка формата Dwarf (поддержка DWARF4 и алгоритма сжатия отладочной информации DWZ).
  • В Memcheck сокращено потребление памяти для программ, выделяющих большое количество блоков памяти.
  • В Memcheck увеличена производительность обнаружения утечек памяти.
  • Во встроенный GDB-сервер добавлено несколько полезных команд для работы с Memcheck.
  • В Memcheck под MacOSX 10.6, 10.7 уменьшено количество ложных срабатываний, которые вызваны особенностями кода, генерируемого LLVM/Clang.
  • Множество других улучшений и исправлений ошибок.

Официальный сайт

>>> Подробности

 , , , ,

GArik
()

Релиз Allegro CL 9.0

Группа Проприетарное ПО

Вышла новая версия реализации среды программирования Common Lisp — Allegro CL 9.0.

Allegro CL® является динамической объектно-ориентированной средой программирования, подходящей для разработки сложных энтерпрайз-ориентированных приложений. Разработка такого рода приложений с миллиардами объектов теперь стала еще проще с новым Allegro CL 9.0. Сложность сегодняшних программных комплексов и взрывной рост объемов данных получили широкое распространение во всех областях, начиная с наук о жизни (Life Sciences) и кончая финансовым анализом (Financial Analytics).

( читать дальше... )

>>> Подробности

 , , ,

gensym
()

ChicagoBoss 0.8.0

Группа Интернет

ChicagoBoss — это легковесный веб-фреймворк, написанный на erlang. От аналогов отличается простотой написания моделей и контроллеров, отсутствием каких-либо привязок к js-библиотекам, высокой скоростью работы, поддержкой широкого диапазона веб-серверов и баз данных, а также ориентацией на высокую нагрузку и отказоустойчивость. В новой версии:

>>> Подробности

 chicagoboss, ,

shahid
()

Вышел OCaml 4

Группа Open Source

Выпущена новая мажорная версия языка программирования OCaml — современного объектно-ориентированного языка функционального программирования общего назначения.

Произошедшие изменения в языке:

  • обобщенные алгебраические типы данных — мощное расширение системы типов;
  • новый усовершенствованный ARM бекенд;
  • изменения в модулях: аннотации типов теперь могут быть пропущены при упаковке и распаковке модулей, кроме того они могут быть распакованы при паттерн-матчинге;
  • поддержка рандомизированных хеш-таблиц для устранения уязвимостей, связанных с DoS (denial of service);
  • установка внутренних библиотек компилятора производится в +compiler-libs для легкого доступа сторонними утилитами.

Подробный Changelog

>>> Релиз

 ,

x4DA
()

Вышла среда разработки NetBeans 7.2

Группа Java

NetBeans — это популярная кроссплатформенная интегрированная среда разработки с открытым исходным кодом, позволяющая создавать приложения на многих языках программирования (Java, PHP, Javascript, C, C++ и других). Недавно в свет вышла версия 7.2. NetBeans доступна на нескольких языках, среди которых есть и русский.

В этом выпуске упор был сделан на улучшение производительности и облегчение процесса разработки с помощью статического анализа кода. Из важных изменений также следует отметить интеграцию с JavaFX Scene Builder, поддержку нескольких PHP-фреймворков, усовершенствованную поддержку Groovy, встроенную Subversion 1.7.

Некоторые другие изменения:

( читать дальше... )

Подробнее об этом выпуске

Посмотреть видеообзор (требуется Flash)

Скачать NetBeans

 , , , ,

CARS
()

Интерфейс прикладного программирования Socket API

Группа Документация

Опубликован перевод серии из 5 статей, предназначенных для новичков сетевого программирования (знание языка C является обязательным условием), в которой рассказано, как с помощью интерфейса прикладного программирования Socket API системы UNIX создавать сервера и сетевые клиентские программы.

>>> Подробности

 ,

vikos
()

RawTherapee: разработчики ищут добровольцев для совершенствования программы

Группа Мультимедиа

В блоге RawTherapee, свободного и открытого кроссплатформенного приложения для обработки raw-файлов цифровых фотокамер, обновлено обращение к добровольцам, желающим помочь в разработке программы. Речь не идет о денежных пожертвованиях.

( читать дальше... )

>>> Подробности

 , , volunteer, ,

doluphio
()

Попытка реинтеграции компилятора D в состав GCC

Группа GNU's Not Unix

Как можно заключить из сообщений в рассылке разработчиков gcc, к версии gcc 4.8 будет предпринята попытка официально ввести в состав gcc gdc — свободную реализацию компилятора языка D (digitalmars D).

D позиционируется как «системный язык программирования высокого уровня» и предоставляет как высокоуровневые возможности, включая присущие динамическим языкам, так и позволяет при необходимости задействовать характерные для системного программирования низкоуровневые особенности, включая ручное управление памятью. В известной степени D можно считать наследником C++, избавленным от неоднозначностей.

Так, средства метапрограммирования имеют ясный синтаксис и не порождают нечитаемых сообщений об ошибках. Язык поддерживает концепцию модулей. Скорость компиляции и сборки кода настолько высока, что D можно использовать вместо интерпретируемых языков (скрипты).

D не накладывает жёстких парадигменных ограничений и позволяет записывать код в обобщённом, объектно-ориентированном, функциональном и процедурном стилях, а так же их комбинации. Штатно предоставляются полные средства интроспекции. Дополнительно компилятор несёт в себе нечто вроде интерпретатора языка, позволяющего динамически добавлять/изменять методы во время исполнения.

Имеются средства прямого вызова функций, реализованных на языках C и C++.

В целом, D представляется интересным для программирующих пользователей, нуждающихся в современных выразительных средствах, но не имеющих возможности изучать все особые случаи C++.

Свободно доступен референсный компилятор dmd, однако он предназначен, скорее, для исследовательских целей. Появление штатного фронтенда D в наборе gcc позволяет надеяться на переход от чисто экспериментального применения этого интересного и мощного языка к широкому внедрению.

>>> Подробности

 , ,

glebiao
()