Arageli and Linux.

11 views
Skip to first unread message

bader

unread,
Oct 30, 2006, 8:39:29 AM10/30/06
to Arageli
Добрый день всем.

Предлагаю обуждать поддержку и
развитие библиотеки Arageli в
операционной среде Linux.
Для начала хотелось бы знать сколько
человек заинтересовано в проведении
работы в этом направлении (назовитесь,
если таковые есть).
На данный момент появились некоторые
замечания по компиляции библиотеки.
Кто-нибудь из разработчиков имеет опыт
создания серьёзных проектов в Linux?

Алексей.

K-3

unread,
Oct 30, 2006, 10:46:44 AM10/30/06
to Arageli
Да. Я заинтересован в развитии ageli в ОС
Linux. Раз мы уж вышли на мировую арену ;),
где в научно-академической среде
распостранен именно Linux. Когда я людям
на ICMS рассказывал про Skeleton2, первое, что
их интересовало: какая ли лицензия и
можно ли компилировать gcc. Работает ли
Skeleton в Linux, меня спрашивали также
ребята, пишущие курсовую у В.Н.Ш.
(Кстати, теперь работает) Их можно
привлечь. Возможно, они владеют
всякими configure, make и т.д. и т.п.

bader

unread,
Oct 30, 2006, 12:24:25 PM10/30/06
to Arageli
K-3, что вы хотите сказать, говоря "их
можно привлечь"?
Они готовы заниматься поддержкой Arageli
под Linux?

Nikolai Zolotykh

unread,
Oct 31, 2006, 3:47:42 AM10/31/06
to ara...@googlegroups.com
Их можно попросить, например, дать консультацию (если она необходима)
или написать соответствующие скрипты для сборки проекта.

Sergey Lyalin

unread,
Oct 31, 2006, 1:57:12 PM10/31/06
to Arageli
Я заинтересован!

Где-то год назад, я регулярно
компилировал Arageli на Itanium 2 под Linux ---
тогда всё компилировалось. Было бы
здорово если бы и сейчас в любой Linux
системе Arageli компилировалась бы без
проблеме, но...

Но, библиотека-то компилируется, и
компилируются tests, но не все из них
проходят (FAILED). Достаточно большая
часть не проходит из-за пока
непонятных различий в стандартной
библиотеке. Просто у разработчиков ни
как не доходят руки до того, что бы
заняться Arageli под Linux всерьёз, ибо
большинство из них постоянно работает
под Windows.

Вообще, это уже вторая попытка послать
сюда что-нибудь. Вчера у Гугл Групс
что-то изломалось и сообщения доходили
с огромной задержкой, а некоторые
вообще не дошли. Если когда-нибудь
позже придёт и первое сообщение, то не
ругайте меня, не виноватый я :)

bader

unread,
Nov 1, 2006, 10:24:37 AM11/1/06
to Arageli
Мда... я пока насчитал 3
заинтересованных человека без опыта
участия в серьёзных проектов под Linux и
целых 0 заинтересованных человек с
опытом.

Не густо :-).

Ладно, придётся разбираться самим.

Sergey Lyalin

unread,
Nov 1, 2006, 10:43:54 AM11/1/06
to Arageli
Алексей, не все реагируют так быстро.
Не все считают, что надо тратить время
на этот топик. Если устраивать
организационные сборы, то мы так
никого не привлечём людей.

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

Например, я знаю, что ты, Алексей,
написал новый Makefile для Arageli и он
безусловно лучше, чем существующее
решение. Но, ты его не выкладываешь,
чего-то ждёшь... Знаю, так же, что Сергей
Галкин, может нам помочь с configure и
прочими вещами, т.е. надо бы
скооперироваться. Это что касается
сборки.

Что же касается корректного
прохождения тестов, то это надо
смотреть более подробно. Многие тесты
не проходят из-за различий в std::numeric_limits
для встроенных типов (при конвертации
в или из big_int).

bader

unread,
Nov 1, 2006, 11:45:37 AM11/1/06
to Arageli
Насчёт makefile...
Сергей, я написал другой. Он может быть
чем-то лучше прежнего, но всё равно он
не соответствует требованиям, которые
мы с тобой обсуждали. Поэтому пока
пользуюсь им только я.
Конкретная проблема:
нужно наладить процесс сборки
библиотеки под операционную систему
*nix.

max...@gmail.com

unread,
Nov 14, 2006, 8:08:08 PM11/14/06
to Arageli
Я заинтересован. Собственно, иначе и
быть не может, так как линукс у меня
везде ;)
В наличие имеются x86 и x86_64 (в том числе и
многопроцессорные) системы под Debian и
RHEL, могу пособирать там, если есть
необходимость.
Что конкретно требуется?

Max

P.S. Я не разработчик, и опыта создания
серьёзных проектов у меня нет
(баловство типа ggnfs не в счёт). Но на C/C++
пишу много по научной работе
(естественно под линуксом).

bader

unread,
Nov 15, 2006, 8:24:21 AM11/15/06
to Arageli
> В наличие имеются x86 и x86_64 (в том числе и
> многопроцессорные) системы под Debian и
> RHEL, могу пособирать там, если есть
> необходимость.
Было бы очень кстати...

> Что конкретно требуется?
Для начала было бы неплохо просто
попробовать скомпилировать
библиотеку на х86 и х86_64 системах под
имеющимися ОС-ми. Есть сомнения в том,
что попытка увенчается успехом
(особенно на х86_64).

Задача №2 - прогнать тесты для
библиотеки. Тут по-моему всё ещё
печальнее...

> P.S. Я не разработчик, и опыта создания
> серьёзных проектов у меня нет
> (баловство типа ggnfs не в счёт). Но на C/C++
> пишу много по научной работе
> (естественно под линуксом).

Меня в этом отношении интересует вот
какой момент. Вам скорее всего
приходилось писать код в нескольких
файлах (весь код писать в одном файле
достаточно утомительно). Так вот, меня
в частности интересует ваш опыт в
написании makefile для подобных проектов.
В особенности, если файлы были
разнесены по разным каталогам.

Алексей.

max...@gmail.com

unread,
Nov 15, 2006, 12:48:42 PM11/15/06
to Arageli

"""bader писал(а):

"""
> > Что конкретно требуется?
> Для начала было бы неплохо просто
> попробовать скомпилировать
> библиотеку на х86 и х86_64 системах под
> имеющимися ОС-ми. Есть сомнения в том,
> что попытка увенчается успехом
> (особенно на х86_64).
>
> Задача №2 - прогнать тесты для
> библиотеки. Тут по-моему всё ещё
> печальнее...

OK. Попробую и доложу о результатах.

...

> Так вот, меня
> в частности интересует ваш опыт в
> написании makefile для подобных проектов.
> В особенности, если файлы были
> разнесены по разным каталогам.

Посмотрите для примера как сделаны
Makefile'ы (их там несколько - по одному на
каждый каталог) и как они вызываются из
главного Makefile в ggnfs:
http://sf.net/projects/ggnfs

Max

Max Alekseyev

unread,
Nov 15, 2006, 10:57:40 PM11/15/06
to Arageli
On 15 Нояб., 05:24, "bader" <Aleksey.Ba...@gmail.com> wrote:

> > Что конкретно требуется?
> Для начала было бы неплохо просто
> попробовать скомпилировать
> библиотеку на х86 и х86_64 системах под
> имеющимися ОС-ми. Есть сомнения в том,
> что попытка увенчается успехом
> (особенно на х86_64).

Лог сборки libarageli.a из arageli-2.2.2.207-svn.zip под
x86_64 приведен ниже. В целом неплохо и
даже собралось, но вот все warning лучше
пофиксить. Особые подозрения вызывают
странные преобразования типов: converting to
'size_t' from 'long double'

А вот с 'make tests' все совсем плохо: мало
того, что там ошибки вылезают, так сама
сборка в ко всему прочему просто
зацикливается.

Вот вспомню свой пароль к svn - попробую
зафиксить критические ошибки. ;)

Max

=== log сборки ===
build/linux-gcc$ make
cd ../../bin && mkdir -p arageli_Inters
cd ../../bin/arageli_Inters && g++ -c -DARAGELI_SOURCE
../../src/arageli/algebrslt.cpp ../../src/arageli/bareiss.cpp
../../src/arageli/bigar.cpp ../../src/arageli/big_const.cpp
../../src/arageli/big_float.cpp ../../src/arageli/big_int.cpp
../../src/arageli/cone.cpp ../../src/arageli/exception.cpp
../../src/arageli/gauss.cpp ../../src/arageli/gcd.cpp
../../src/arageli/hermite.cpp ../../src/arageli/intalg.cpp
../../src/arageli/intconvex.cpp ../../src/arageli/intcount_barvinok.cpp
../../src/arageli/io.cpp ../../src/arageli/linopt.cpp
../../src/arageli/lll.cpp ../../src/arageli/logarithm.cpp
../../src/arageli/matrix.cpp ../../src/arageli/motzkin_burger.cpp
../../src/arageli/polyhedron.cpp ../../src/arageli/polynom.cpp
../../src/arageli/powerest.cpp ../../src/arageli/prime.cpp
../../src/arageli/rational.cpp ../../src/arageli/resultant.cpp
../../src/arageli/sideset.cpp ../../src/arageli/smith.cpp
../../src/arageli/smithpoly.cpp ../../src/arageli/solve_linsys.cpp
../../src/arageli/sparse_polynom.cpp ../../src/arageli/sturm.cpp
../../src/arageli/texout.cpp ../../src/arageli/triangulation.cpp
../../src/arageli/type_opers.cpp ../../src/arageli/type_traits.cpp
../../src/arageli/_utility.cpp ../../src/arageli/vecalg.cpp
../../src/arageli/vector.cpp ../../src/arageli/hermite/classic.cpp
../../src/arageli/hermite/domich.cpp
../../src/arageli/hermite/hafner.cpp
../../src/arageli/hermite/storjohann.cpp
../../src/arageli/smith/classic.cpp
../../src/arageli/smith/near_optimal.cpp
../../src/arageli/smith/storjohann.cpp
../../src/arageli/bigar.cpp: In function 'size_t
Arageli::_Internal::do_big_int_to_bdn(Arageli::_Internal::digit*,
Arageli::_Internal::digit*, size_t, Arageli::_Internal::digit)':
../../src/arageli/bigar.cpp:55: warning: comparison is always true due
to limited range of data type
../../src/arageli/bigar.cpp: In function 'size_t
Arageli::_Internal::do_bdn_to_big_int(Arageli::_Internal::digit*,
Arageli::_Internal::digit*, size_t, Arageli::_Internal::digit)':
../../src/arageli/bigar.cpp:91: warning: comparison is always true due
to limited range of data type
In file included from ../../src/arageli/big_const.cpp:24:
../../src/arageli/big_const.hpp:114:8: warning: no newline at end of
file
../../src/arageli/big_const.cpp: In function 'Arageli::big_int
Arageli::ln1_25(size_t)':
../../src/arageli/big_const.cpp:38: warning: converting to 'size_t'
from 'long double'
../../src/arageli/big_const.cpp: In function 'Arageli::big_int
Arageli::ln2(size_t)':
../../src/arageli/big_const.cpp:72: warning: converting to 'size_t'
from 'long double'
../../src/arageli/big_const.cpp: In function 'Arageli::big_int
Arageli::exp(Arageli::big_int, size_t, int)':
../../src/arageli/big_const.cpp:162: warning: converting to 'size_t'
from 'long double'
../../src/arageli/big_const.cpp: In function 'Arageli::big_int
Arageli::e(size_t)':
../../src/arageli/big_const.cpp:233: warning: converting to 'size_t'
from 'long double'
../../src/arageli/big_float.cpp: In constructor
'Arageli::big_float::big_float(const char*)':
../../src/arageli/big_float.cpp:265: warning: converting to 'long int'
from 'long double'
../../src/arageli/big_float.cpp: In function 'Arageli::big_float
Arageli::nfsqrt(const Arageli::big_float&, long int, int)':
../../src/arageli/big_float.cpp:1214: warning: converting to 'size_t'
from 'long double'
In file included from ../../src/arageli/logarithm.cpp:24:
../../src/arageli/big_const.hpp:114:8: warning: no newline at end of
file
../../src/arageli/logarithm.cpp:283:9: warning: no newline at end of
file
../../src/arageli/logarithm.cpp: In function 'Arageli::big_int
Arageli::frac_1(const Arageli::big_int&, size_t)':
../../src/arageli/logarithm.cpp:194: warning: converting to 'size_t'
from 'long double'
cd ../../bin/arageli_Inters && ar -r ../libarageli.a *.o
ar: creating ../libarageli.a
=== log сборки ===

Nikolai Zolotykh

unread,
Nov 15, 2006, 11:58:25 PM11/15/06
to ara...@googlegroups.com
Макс, спасибо.

bader

unread,
Nov 24, 2006, 4:22:20 AM11/24/06
to Arageli
Есть у меня такой вопрос.
Сейчас я читаю документацию к
различным GNU приложениям и не первый
раз встречаю такую рекомендацию:

By default, the Make rules should compile and link with '-g', so
that executable programs have debugging symbols (например, в
GNU Coding Standards).

Так вот... как поступить относительно
библиотеки Arageli? Насколько я знаю
сейчас по умолчанию библиотека
компилируется без этого ключа (under Linux).

Что думает сообщество?

aps...@gmail.com

unread,
Nov 25, 2006, 8:56:01 AM11/25/06
to Arageli
Конечно стоит включить эту опцию по
умолчанию, вдруг, кто-то будет
использовать gdb :)

bader

unread,
Nov 25, 2006, 9:14:33 AM11/25/06
to Arageli
Тут дело не в gdb, а в общем понимании
того, что должен получить человек
набравший make.
Тут возможны два варианта:
1. Этот человек - обыкновенный
пользователь, которому нужна
функциональность библиотеки arageli.
2. Этот человек - разработчик
библиотеки.

Если со вторым случаем всё достаточно
очевидно (это опция будет полезной).
А вот в первом не достаточно понятно,
для чего человеку, который возможно
никогда не полезет в код библиотеки
эта опция?
Я не уверен, но, по-моему
производительность библиотеки с
опцией -g будет ниже, чем без неё.

Насколько я понимаю, на данный момент в
основном библиотекой пользуются её
разработчики. Возможно при таком
положении дел, имеет смысл включить
данную опцию, но только как временное
решение (на мой взгляд, не очень
удачное).

Естесственно, что при отладке эта
опция нужна, но нужна ли отладка по
умолчанию?

Reply all
Reply to author
Forward
0 new messages