[03:00:47] <valexey> "Кремниевой долине работают 40 тысяч русских"
[03:01:02] <valexey> При этом общее число программистов и около того, в самой россии - порядка 150 тыс.
[11:58:34] <virtual.lark> А вот есть у меня запись. В ней сейчас два поля. Одно совсем просто, другое - контейнер для char'ов. Из этой записи делается ещё один контейнер и всё работает. Так вот, хочу добавить в запись ещё один контейнер, но уже не типа character, а для типа Unbounded_String. Мне ошибки сыплюстся.
[11:58:42] <virtual.lark> Вопрос: так совсем нельзя делать или как-то можно, но я просто не знаю?
[12:00:23] <landgraf> virtual.lark, какие ошибки? как добавить?
[12:00:53] <virtual.lark> ой я протупил. забыл убрать text_io в with ... unbounded.text_io; сейчас всё норм.
[12:03:10] <virtual.lark> точнее, убрал, но не сохранил. пишу в gps, компилирую и запускаю в ком. строке. что-то я так и не понял, как в gps это правильно делать.
[12:03:47] <virtual.lark> наверное, .gpr-файл неправильно написан. или типа того.
[12:04:42] <landgraf> gps не нужен )
[12:05:51] <virtual.lark> мне нужно от него дополнение кода, переход к определениям, и переход тело-реализация. где ещё есть такое, кроме gnatbench'а?
[12:10:28] <landgraf> virtual.lark, vim + ctags + a.out  почти тоже самое умеет )
[12:11:10] <virtual.lark> раньше я вообще с mcedit писал )
[12:12:40] <virtual.lark> но это не круто ) круто сразу находить то, что тебе нужно )
[12:13:35] <virtual.lark> нажал got-declaration (мышкой или комбинацией заметной) и ты уже в нужном исходнике, или даже в нужном файле определений контейнеров! КРУТО же !!! )
[12:21:57] <virtual.lark> жизнь коротка, не хотелось бы её тратить на рысканью в ручном режиме по 100500 файлам и каталогам.
[12:57:00] <virtual.lark> Вот такую вещь заметил, что Ada.Container.Count_Type is range 0 .. 2**31 - 1;
[12:57:31] <virtual.lark> Если я правильно рассуждаю, то бОльшего кол-ва елементов не получится уместить в контейнер?
[12:58:29] <virtual.lark> Можно ли обойти это ограничение, поправив на, скажем 2**63 - 1? Ну и пересобрать всё?
[13:13:03] <landgraf> а зачем? оно и так не быстро работает
[13:16:20] <virtual.lark> вопрос о скорости пока отложим на потом. но принципиально - если объектов больше, чем это ограничение?
[13:17:24] <virtual.lark> вот в стандартной библиотеке шаблонов си++ используется для размеров "тип" size_t. так вот он на i386 - 32 бита, на amd64 - 64 бита. разумно и логично.
[13:19:14] <virtual.lark> понятное дело, вопрос имеет смысл при 64-х битной архитектуре.
[13:25:43] <virtual.lark> а про скорость хочу заметить, что для установления/получения элемента из вектора - она должна быть линейная, как и для си++-реализации.
[13:27:56] <virtual.lark> тьфу, не линейная, а O(c), а для остальных опраций - линейная.
[13:28:23] <landgraf> вот из-за таких откладывателей "на потом" и получилась Java :-D
[13:29:20] <virtual.lark> да в жабе контейнеры также работают, ну, с поправкой на сборщик мусора.
[13:30:08] <virtual.lark> operator for type "Ada.Containers.Count_Type" is not directly visible
[13:30:43] <virtual.lark> use clause would make operation legal
[13:30:46] <virtual.lark> красота!
[13:36:00] <vgodunko> virtual.lark: стандартные контейнеры Ada это не решение на все случаи жизни.
[13:36:14] <vgodunko> Это просто готовый набор часто используемых контейнеров общего назначения
[13:36:32] <vgodunko> Достаточно просто, разумно удобно и не более.
[13:36:38] <virtual.lark> также, как и в Си++, надо полагать.
[13:37:10] <vgodunko> Если приложению реально необходимо контейнер с гарантированными специфическими свойствами - он будет написан для приложения.
[13:38:22] <virtual.lark> Да тут цель простая, сначала разобрать протокол, положить в дерево контейнеров, потом достать оттуда, проанализировать, какие-то выводы сделать. Для этого контейнеры вполне подходят.
[13:39:34] <virtual.lark> vgodunko: я там выше интересовался, ничего такого не поломается, если в сорцах Ada.Containers.Count_Type расширить до ~64 бит и всё пересобрать.
[13:40:04] <virtual.lark> А то элементов может быть и больше, чем 32 бита.
[13:40:26] <vgodunko> Зная как оно реализовано внутри - думаю что-то наверняка развалится
[13:40:32] <virtual.lark> На всякий случай повторю, что этот вопрос имеет смысл для 64-х битной адресации.
[13:40:37] <virtual.lark> :)
[13:41:33] <virtual.lark> А вот в Си++ используется size_t для этой цели, он в 64-х битной архитектуре - 64-х битный. Как бы не пришлось на Си++ переписывать )
[13:42:28] <virtual.lark> Ладно, пока в тестовых проверках нет столько объектов, отложим вопрос до тех пор, пока не появится.
[13:43:44] <virtual.lark> vgodunko, а что, плохо реализовано? я во времена ada95 внешние контейнеры использовал. подзабыл как называются даже. charlie? которые в ada2005+ - это они же? просто размещены в стандартной библиотеке?
[13:44:21] <virtual.lark> внешние := в виде библиотеки, которая компилировалась и стыковалась с приложением. ну вы поняли.
[13:44:40] <virtual.lark> рядом сорцы лежали и всё вместе компилировалось и компоновалось.
[13:44:55] <vgodunko> В них всё реализовано хорошо, но очень заумно и местами пожертвовано в сторону производительности
[13:45:59] <vgodunko> А раз так - имеется привязка ко всему и каждому.
[13:50:31] <virtual.lark> А что у нас есть на вскидку, чтобы распечатать подсвеченный цветами код на Аде?
[13:51:08] <virtual.lark> File->Print в GPS распечатает цветной?
[13:51:40] <virtual.lark> Правда он /usr/bin/lpr хочет, а он не настроен на печать на удалённой SMB-машине.
[13:52:27] <vgodunko> GPS должен по идее
[13:52:36] <yeo> File->Print будет чернобелый помойму
[13:52:51] <vgodunko> yeo: так ты же его дорабатывал?
[13:55:21] <yeo> оно попало в GPL 2013? надо попробовать
[13:57:19] <vgodunko> Должно, GPL 2013 это GPS 5.2.
[13:58:04] <virtual.lark> что-то попало, т.к. gps из gpl2013 хочет уже lp, а не lpr, как gps из дебиана, где пробовал пару минут назад.
[14:14:40] <virtual.lark> нашёл web'овскую раскрашку. кому интересно: http://tohtml.com/ada
[14:17:40] <landgraf> даже fpaste умеет раскрашивать
[14:18:45] <virtual.lark> ага, тоже норм красит.
[14:19:39] <landgraf> $ fpaste -l list | grep -i ada

[14:19:44] <landgraf> что за дескриминация?
[14:21:58] <virtual.lark> $ fpaste
[14:22:02] <virtual.lark> fpaste: команда не найдена
[14:22:06] <virtual.lark> действительно )
[17:00:40] <valexey> virtual.lark: да github поддерживает же аду
[17:00:49] <valexey> соответственно делаем gist и печатаем