[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