[devel] Минутка математики (Was: Re: [#238855] [test-only] FAILED (try 4) openblas.git=0.3.9-alt1 R-base.git=4.0.0-alt1)
Alexey Sheplyakov
asheplyakov на basealt.ru
Пт Май 1 10:44:18 MSK 2020
Добрый день!
On Wed, Apr 29, 2020 at 06:09:39PM +0300, Kirill Maslinsky wrote:
>
> Alexey Sheplyakov writes:
>
> >> $(R_EXE) на ppc64le зависает не в специфическом месте при сборке, а
> >> вообще всегда при запуске. Похоже, это происходит вот в этом цикле:
>
> [...]
>
> > К счастью, "подарок" от IBM (double double) легко отключть с помощью флагов
> > компиляции
> >
> > -mabi=ieeelongdouble -mlong-double-128
> >
> > Такие дела. Простите за много букв.
>
> Алексей, спасибо огромное за столь подробное объяснение! С этими флагами
> R на ppc64le действительно собрался, но теперь падают тесты. Буду
> разбираться дальше.
Мне следовало написать точнее. Весь мой рассказ не следует воспринимать
как однозначную рекомендацию использовать стандартный long double (хотя
это и кажется логичным). Я пояснил (в меру своего понимания), что именно
происходит, и почему оно происходит именно так. Решений же возможно
несколько, как минимум
1) Адаптировать проблемный код для работы с double double [очень сложно]
2) Научить R использовать только float, double на ppc64
3) Использовать стандартный long doulbe на ppc64, т.е.
-mabi=ieeelongdouble -mlong-double-128
Но в этом случае нужно использовать стандартный long double не
только в собственно R, но и всех библиотеках, которые использует R:
blas, lapack, ..., libm (тут возникает вопрос -- а как это повлияет
на других "пользователях" этих библиотек, и ответа на него я не знаю)
Подробная информация о списке рассылки Devel