5/28/2009

Вышел Gnat GPL 2009

Сегодня вышел релиз GPL компилятора языка Ада от компании AdaCore.
Скачать можно на оффициальном сайте.

Компилятор полностью поддерживает стандарт Ады 2005.
И в скором времени только им можно будет скомпилировать QtAda.

UPD: С новым компилятором не нужно выполнять никаких сложных действий для того чтобы установить QtAda. Только после установки QtAda нужно лишь указать компилятору как использовать Amoc. И все.
Ну и естественно прописать все необходимые пути.

5/21/2009

Установка и настройка QtAda

В этой статье, я хочу вам рассказать как скачать и установить библиотеку Qtada.

Qtada - это библиотека, которая позволяет создавать графический интерфейс пользователя на языке Ада, с использованием возможностей библиотеки Qt.

Для того чтобы установить QtAda понадобится установить и настроить :

  1. Компилятор языка Ада (gnat)
  2. Библиотеку для семантического анализа программ на Аде (asis)
  3. Библиотеку Qt, версии не ниже 4.5.0
  4. Библиотеку QtAda версии 3.x

1. Компилятор:

QtAda написана с использованием языка Ада стандарта 2005 года. Компилятор Gnat от компании AdaCore наиболее полно поддерживает стандарт Ады 2005, и позволяет без проблем скомпилировать библиотеку. Для установки QtAda нужно использовать Gnat GPL 2008 - самую последнюю версию на данный момент, доступную для некоммерческого использования. Скачать компилятор можно с официального сайта www.adacore.com или же с одного из зеркал. Размер компилятора около 90 мегабайт.

Я качал Gnat с зеркала на сайте ftp.mipt.ru :

cd /tmp/ && wget -c ftp://ftp.mipt.ru/ada/gnat-gpl-2008/x86_64-linux/gnat-gpl-2008-x86_64-pc-linux-gnu-bin.tar.gz

Распаковываем во временную папку:

cd /tmp/ && tar xfv gnat-gpl-2008-x86_64-pc-linux-gnu-bin.tar.gz

Перемещаем распакованную папку в /opt/gnat/:

mv /tmp/gnat-2008-x86_64-pc-linux-gnu-bin /opt/gnat

Пол-дела сделано.

Теперь, чтобы воспользоваться компилятором, нужно прописать в переменных окружения пути к исполняемым файлам и библиотекам. Для этого проще всего создать в домашнем каталоге файл ~/.ada_rc примерно следующего содержания:

export PATH=/opt/gnat/bin:$PATH

export LD_LIBRARY_PATH=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.2.4/:/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adalib/:$LD_LIBRARY_PATH

Далее по необходимости, можно каждый раз набирать в консоли source ~./ada_rc или же прописать эту строчку в файле ~/.bashrc

Пути к компилятору обязательно должны быть первыми в обоих переменных окружения. Это нужно по следующей причине: скорее всего ваш системный GCC не скомпилирован с поддержкой языка программирования Ада, и поэтому он не сможет запустить компилятор gnat. По этой причине, вместе с gnat'ом поставляется своя версия gcc, которая умеет делать все что нужно.

Следующий шаг выполнять НЕ НУЖНО, если версия вашего системного gcc старше или такая же как и версия gcc,предоставляемого gnat'ом (в данном случае 4.1.2)

Если же у вас в системе компилятор новее, то gcc, который входит в состав gnat, может

работать некорректно, из за конфликтов своих библиотек с системными, а конкретно библиотеки, libgcc_s.so.1

Нужно удалить библиотеку поставляемую вместе с gnat:

rm -i `find /opt/gnat/ -name libgcc_s.so.1`

и сделать символическую ссылку на системную:

ln -s /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libgcc_s.so.1 /opt/gnat/lib64/

Теперь можно со спокойной душой набрать в консоли

gnatls -v

и убедиться что компилятор работает.

Вывод должен быть примерно следующим:

GNATLS GPL 2008 (20080521)

Copyright (C) 1997-2008, Free Software Foundation, Inc.

Source Search Path:

/usr/lib64/gnat-gpl/x86_64-pc-linux-gnu/4.1-2008/adainclude/

/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adainclude/

Object Search Path:

/usr/lib64/gnat-gpl/x86_64-pc-linux-gnu/4.1-2008/adalib/

/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adalib/

Project Search Path:

/opt/gnat/lib/gnat/

2. Установка ASIS

ASIS - это Спецификация Семантического Интерфейса к языку Ада (Ada Semantic Interface Specification, ASIS). Он необходим для корректной работы компилятора мета информации, поставляемого с QtAda'ой.

Скачать ASIS можно там же где и компилятор:

cd /tmp && wget -c ftp://ftp.mipt.ru/ada/gnat-gpl-2008/x86_64-linux/tools/asis/asis-gpl-2008-src.tgz

Затем его надо распаковать:

tar xfv asis-gpl-2008-src.tgz

Перейти в каталог с исходниками:

cd asis-2008-src

Скомпилировать:

make INSTALL_DIR=/opt/gnat

Установить:

make INSTALL_DIR=/opt/gnat install

Теперь нужно убедиться, что ASIS установлен корректно, и QtAda при компиляции обнаружит проектный файла библиотеки ASIS. Для этого проверьте, есть ли файл asis.gpr в дирректории /opt/gnat/lib/gnat/

Если есть, то все хорошо, и можно продолжать дальше. Если нет, то что-то не так.

3. Установка Qt.

Qt - это кросс платформенная библиотека для создания графического интерфейса пользователя.

Скачать можно с сайта www.trolltech.com.

Процесс установки Qt я здесь описывать не буду.

Замечу лишь, что при конфигурации Qt убедитесь, что библиотека сконфигурирована БЕЗ флага -no-accessebility

4. Установка QtAda

Если ваш системный компилятор новее, чем тот, что идет в составе Gnat, то перед установкой QtAda нужно чуть чуть сконфигурировать компилятор, дабы корректно откомпилировать ту часть проекта, которая написана на C++.

Сначала узнаем версию системного компилятора:

/usr/bin/gcc -v

Из полученного вывода нужна самая последняя строка. В моем случае она выглядит так:

gcc версия 4.3.3 (Gentoo 4.3.3-r2 p1.1, pie-10.1.5)

Из этой строки нам понадобится только Gentoo 4.3.3-r2.

Открываем в вашем любимом текстовом редакторе файл compilers.xml :

emacs /opt/gnat/share/gprconfig/compilers.xml

Находим там блок, который начинается с комментария <!-- GCC 3.x & 4.x -->

и заменяем в строке <grep regexp="\(GCC\) (\S+)" group="1">

выражение \(GCC\) на (Gentoo\ 4.3.3-r2)

Далее ищем блок, который начинается с комментария <!-- G++ compilers --> и проделываем те же самые манипуляции.

Для окончательной конфигурации компилятора нужно выполнить:

gprconfig

В результате чего в консоли появится вот такой список:

--------------------------------------------------

gprconfig has found the following compilers on your PATH.

Only those matching the target and the selected compilers are displayed.

(A) GNAT for Ada in /opt/gnat/bin/ version 2008 (default runtime)

(B) GNAT for Ada in /opt/gnat/bin/ version 2008 (native runtime)

(C) GNAT for Ada in /opt/gnat/bin/ version 2008 (sjlj runtime)

(D) GCC-ASM for Asm in /opt/gnat/bin/ version 4.1.3

(E) GCC-ASM for Asm2 in /opt/gnat/bin/ version 4.1.3

(F) GCC-ASM for Asm_Cpp in /opt/gnat/bin/ version 4.1.3

(G) GCC for C in /usr/bin/ version Gentoo 4.3.3-r2

(H) G++ for C++ in /usr/bin/ version Gentoo 4.3.3-r2

Select or unselect the following compiler (or "s" to save):

Нажимаем A, <enter>, D, <enter>, E <enter>, F <enter>, G <enter>, H <enter>

Возле каждого выбранного пункта должна появиться *.

Жмем s и сохраняем настройки.

Теперь все готово для компиляции QtAda.

Хочу отметить, что все вышеперечисленные действия нужно выполнять, если у ваш системный компилятор новее того, что поставляется вместе с gnat.

Качаем QtAda с официального сайта:

cd /tmp && wget -c http://download.qtada.com/qtada-gpl-3.0.0-20090423-3303.tar.gz

распаковываем архив:

cd /tmp && tar xfv qtada-gpl-3.0.0-20090423-3303.tar.gz

заходим в директорию с исходниками:

cd qtada-gpl-3.0.0-20090423-3303

Конфигурируем && компилируем && устанавливаем:

./configure -prefix=/opt/qtada && make && make install

После установки нужно обновить переменные окружения PATH и LD_LIBRARY_PATH:

export PATH=/opt/qtada/bin:$PATH

export LD_LIBRARY_PATH=/opt/qtada/lib:$LD_LIBRARY_PATH

Затем нужно указать компилятору где искать файл проекта QtAda.

Для этого нужно установить переменную окружения ADA_PROJECT_PATH:

export ADA_PROJECT_PATH=/opt/qtada/lib/gnat/

Все установки переменных окружения неплохо прописать в файл ~/.ada_rc

Еще необходимо сказать компилятору о том как, использовать amoc. Для этого создадим символическую ссылку:

ln -s /opt/qtada/share/gprconfig/amoc.xml /opt/gnat/share/gprconfig/

и обновим настройки компилятора:

gprconfig

Опять выбираем все нужные компиляторы, включая вновь появившийся Amoc.

Сохраняем.

Теперь QtAda установлена и готова для использования.

5/17/2009

Как Вставить много одинаковых символов в Emacs'е

Для того чтобы вставить много одинаковых символов подряд в среде редактирования текстов Emacs, нужно сначала нажать Crtl + цифра (цифра - количество символов для вставки), а затем непосредственно вставить нужный символ.
Например :
Ctrl + 1 + 0
Затем если нажать на '+',
то начиная от текущей позиции курсора появится 10 символов '+'