[10:00:20] <vgodunko> Как вы думаете, что делает вот такой код:
with League.Strings;
procedure Test_X is
Index : constant Natural
:= League.Strings.Empty_Universal_String.Last_Index ('.');
begin
null;
end Test_X;
[10:02:28] <gour> дохнет от безысходности из-за отсутствия точки в пустой строке? (в код не смотрел)
[10:03:17] <vgodunko> Он приводит Linux в состояние SIGSEGV или SIGBUS экстаза!
[10:06:24] <gour> ну sig11 это понятно и объяснимо. но почему SIGBUS ?
[10:07:34] <vgodunko> Пока не знаю, вернусь - буду разбираться.
[10:07:36] <gour> или оно по дефолту пытается посмотреть в такие глубины памяти, которые не прописаны для виртуальной памяти?
[10:08:28] <vgodunko> Там объект в BSS сегменте, над которым пытаются с помощью продвинутых SSE инструкций вытворить гадость.
[10:08:38] <vgodunko> И где-то что-то глюкотает.
[11:37:20] <vgodunko> Вобщем если пишете на Ada, то не стоит заниматься плясками в стиле C для повышения производительность
[11:38:01] <vgodunko> Не было контроля на пустую строку, а в результате переполнения и адресная арифметика давали прикольные результаты.