[00:00:17] <geniepro> у мя так частично сделано -- одна прога по сокету даёт команду другой проге на другом компе запустить программу, а её вывод stdin направляется в первую прогу
[00:00:46] <valexey> Угу. Пожалуй самый хрюникс-вей это через stdin/out.
[00:01:03] <valexey> Самый кросслаптформенный вей -- это через tcp
[00:01:08] <valexey> ну или udp :-)
[00:01:57] <valexey> Но ваще, транспорт отлично обобщается, то есть реализаций транспорта может быть множество. У нас так было сделано. Было через tcp и через unix domain sockets
[00:02:15] <valexey> И в зависимости от того где запускаемся/собираемся, используется тот или иной механизм.
[00:02:25] <valexey> ФИгли? Интерфейс и его реализации :-)
[00:02:30] <geniepro> в шарпе вроде тоже не должно биться, потому-то чисто бинарнык stream для stdin|stdout используется
[00:02:38] <valexey> Да, для формализации протокола мы использовали google protobuf
[00:03:03] <valexey> Винда по дороге может побить. Там вроде бы были какие-то заморочки на эту тему.
[00:03:08] <valexey> Тяжкое досовое наследие.
[00:03:20] <geniepro> а как он этот протобуф вапще? стоит юзать? а то этот гугл тот ещё багокодер
[00:03:40] <valexey> Ну, мне понравилось. И в жабной части и в плюсовой.
[00:03:57] <valexey> Кроме всего прочего, оно еще и работает быстро.
[00:04:15] <valexey> НО есть одно но -- оно поддерживает официально ровно три языка -- плюсы, жабу, питон.
[00:04:34] <valexey> Есть сторонние реализации этого для хаскеля, сей и прочего.
[00:04:37] <geniepro> ну для хацкеля вроде есть биндинг. и для шарпа я тоже видел
[00:04:56] <valexey> Это не биндинг. Это реализация.
[00:05:07] <geniepro> но там так муторно в шарпе по сравнению со стандартной сериализацией
[00:05:29] <valexey> У них разные задачи просто.
[00:11:18] <valexey> В частности, я не уверен что тебе будет удобно десериализовать шарповый объект в хаскее :-)
[00:11:29] <valexey> А вот протобуфовский -- вполне.
[00:11:42] <valexey> Протобуф он же по середине. Одинаково (не)удобен всем.
[00:14:18] <geniepro> ну если понадобится передать шарповый объект в хаскелл, придётся самому как-то сериализовать или что-то типа протобуфа юзать
[00:14:46] <valexey> Угу. А посредством протобуфа у тебя получается вполне себе формальный протокол.
[00:15:02] <valexey> КОторый лежит отдельно от исходников декларацией в отдельном файле.
[00:15:31] <valexey> Сие удобно дюже.
[00:39:23] <geniepro> млин кажись понял в чём трабла -- пока считывание из сокета делал побайтово, намана работало, как сделал считывание блоком -- чота заглючило о_О
[00:40:04] <geniepro> хотя как это может глючить?
[00:56:23] <geniepro> писец ))) ну да, в этом блочном считывании я указал не смещённую позицию, а нулевую. вот оно и поглючило )))))
[00:56:38] <geniepro> потоки, потоки... баг в цикле, а не потоки! ))))
[00:59:29] <kemiisto> Баг в цикле? Дейкстра врывается в топик!
[00:59:33] <kemiisto> :-D
[01:01:18] <geniepro> дейкстра тут не помог бы )
[01:02:17] <kemiisto> цитирую info21
[01:02:35] <kemiisto> Но раз имеется сильная асимметрия между реализациями, то она отразится и в ветках: проще иметь ветку для альтернативных реализаций -- тем более, там обсуждать почти нечего в виду их scarcity.Но раз имеется сильная асимметрия между реализациями, то она отразится и в ветках: проще иметь ветку для альтернативных реализаций -- тем более, там обсуждать почти нечего в виду их scarcity.
[01:02:41] <geniepro> разве инфо21 достоин, что бы его цитировали? )))
[01:03:20] <kemiisto> geniepro: он открыто признал недостаточное количество реализаций абиронов!
[01:03:32] <kemiisto> то есть даже тем, кому надо
[01:03:38] <kemiisto> уже не хватает
[01:03:56] <kemiisto> Даёшь больше абиронов!
[01:04:01] <kemiisto> Хороших и разных!
[01:05:42] <kemiisto> valexey: так как ты там собиралмя mixins на сишечке 2 плюса запиливать? Уж не мозгорвущими шаблончиками ли? http://stackoverflow.com/questions/505686/are-there-scala-like-mixins-for-c/505757#505757
[01:09:53] <valexey> kemiisto: ими.
[01:10:13] <kemiisto> тады таки в опу!
[01:10:16] <kemiisto> :-D
[01:11:41] <valexey> А почему же?
[01:13:10] <kemiisto> дабы пресечь сразу срыв покровов - да, я шаблоны ниасилил
[01:13:17] <kemiisto> :-)
[01:13:26] <kemiisto> такой вопрос
[01:13:43] <kemiisto> у мну есть идея написать рисовалку молекул
[01:14:05] <kemiisto> пишеться на сишечке с 2 плюсами
[01:14:14] <kemiisto> есть такая идея
[01:14:22] <kemiisto> namespace Chemistry
[01:14:33] <kemiisto> в нём классы Atom, Bond, Molecule
[01:14:50] <kemiisto> в этих классах описана только химическая сторона вопроса
[01:15:18] <kemiisto> то есть только состав молекулы, геометрия, граф
[01:15:30] <kemiisto> и есть namespace Render
[01:15:37] <kemiisto> с аналогичными классами
[01:15:45] <kemiisto> ответственными за отрисовку
[01:16:23] <kemiisto> но что-то какой-то, пиздец, простите
[01:16:50] <geniepro> классы типов юзай!!! )))
[01:17:14] <kemiisto> geniepro: я серьёзно
[01:17:36] <valexey> А чего хочется?
[01:17:43] <kemiisto> простоты
[01:17:46] <geniepro> вот жаль концепты выкинули из с++, нуна было их заюзать )
[01:17:53] <valexey> Да ты просто шаблоны ниасилил!!!
[01:18:01] <valexey> geniepro: нет, в данном случае они не нужны.
[01:18:11] <geniepro> тады придётся как-то интерфейсы имитировать. множественное наследование?
[01:18:18] <valexey> Концепты это всего лишь интерфейс для шаблонов.
[01:18:22] <valexey> Не нужно.
[01:18:29] <valexey> Обычная специализация шаблонов и все.
[01:18:41] <valexey> Также как в хаскельных типах классов.
[01:19:24] <valexey> template <typename T> Renderer {void Draw();}
[01:19:50] <valexey> template <> Renderer <Atom> {void Draw(){реализация};};
[01:19:56] <valexey> ну и так далее.
[01:20:18] <kemiisto> что это?
[01:20:20] <geniepro> я начию сомневаться в своих умственных способностях. вот де тут глюк?

           byte[]       data             = new byte[transmitted_size];
           
           int readed = 0, readedbuf = 0;
           do
           {   
               readedbuf = stream.Read(data, readed, transmitted_size);
               readed   += readedbuf;
           } while (readed < transmitted_size && readedbuf > 0);

пишет: "Specified argument was out of the range of valid values.
Parameter name: size"
[01:21:27] <valexey> geniepro: какого типа у тебя transmitted_size?
[01:21:33] <geniepro> int
[01:21:37] <valexey> а то думаю, что оно должно быть unsigned int
[01:21:43] <geniepro> там блоки по 100кБт
[01:22:02] <valexey> Это вылазит на этапе компиляции или во время работы?
[01:22:11] <valexey> kemiisto: это ШАБЛОНЫ
[01:22:16] <geniepro> public abstract int Read(byte[] buffer, int offset, int count)

[01:22:30] <valexey> Алсо вот это возможно в тему: http://sim0nsays.livejournal.com/27342.html
[01:22:31] <geniepro> при работе в случайные моменты времени о_О
[01:22:38] <kemiisto> valexey: давайте без шаблонов
[01:22:42] <valexey> geniepro: а где тут собственно size?
[01:22:52] <valexey> kemiisto: НИАСИЛИЛ!!!1
[01:23:03] <valexey> Ну можно и без шаблонов. :-)
[01:23:09] <valexey> Напиши как в идеале ты это видишь.
[01:23:09] <geniepro> вот и я думаю -- де тут собственно size? походу де-то унутре дотнета...
[01:23:12] <kemiisto> valexey: я не уверен, что они тут помогут
[01:23:16] <kemiisto> вот смотри
[01:23:19] <kemiisto> у мну сейчас так
[01:23:27] <kemiisto> есть Render::Object
[01:23:42] <kemiisto> абстрактный класс
[01:23:55] <kemiisto> от него наследуется Render::Group
[01:24:03] <kemiisto> тупо коллекция объектов
[01:24:12] <kemiisto> и всякие там Render::Spher
[01:24:16] <kemiisto> у
[01:24:19] <kemiisto> Cone
[01:24:25] <kemiisto> и т.д.
[01:24:45] <valexey> Короче, надо зачесть по ссылке.
[01:24:50] <kemiisto> и в т.ч. Render::Atom и Render::Bond
[01:24:57] <valexey> Я давно читал (года три назад). Но помню что оно в тему
[01:25:00] <valexey> И как раз графика.
[01:25:03] <valexey> Точнее рендеринг. Игры.
[01:25:07] <valexey> И физика.
[01:25:33] <valexey> Три (или четыре?) года назад я ничего не понял. Но понял что это круто. Надо сейчас зачесть :-)
[01:25:55] <geniepro> вот так работает:
           for (int i = 0, b = 0; i < transmitted_size && b >= 0; i++)
           {
               b       = stream.ReadByte();
               data[i] = (byte)b;
           }
[01:26:00] <valexey> kemiisto: но ты скажи, где ты хочешь писать код отрисовки атома, молекулы и так далее?
[01:26:02] <geniepro> чоза хрень?
[01:26:32] <kemiisto> valexey: у меня есть виджет, унаследованный от QGLWidget
[01:26:38] <kemiisto> там и отрисовывается
[01:27:01] <kemiisto> проблемы там, где редастируется
[01:27:33] <kemiisto> приходиться одновременно менять и сцену (Render::Group) и молекулу (Chemistry::Molecule)
[01:27:42] <valexey> geniepro: у тебя там баг.
[01:28:08] <valexey> ты зачем постоянно пытаешься читать блок размером с transmitted_size? У тебя же переполнение массива будет нафиг.
[01:28:24] <valexey> ты уменьшай transmitted_size на каждой итерации на столько, сколько байт у тебя прочиталось.
[01:28:57] <valexey> readedbuf = stream.Read(data, readed, transmitted_size);
               readed   += readedbuf; transmitted_size   -= readedbuf;
[01:29:42] <valexey> ну и условие выхода будет: while (transmitted_size!=0 && readed!=0)
[01:29:49] <valexey> тьху
[01:29:56] <valexey> while (transmitted_size!=0 && readedbuf!=0)
[01:30:28] <valexey> или что оно там возвращает? минус может быть?
[01:30:43] <valexey> kemiisto: так, теперь ты :-)
[01:31:07] <geniepro> ну почему будет переполнение?
[01:31:35] <kemiisto> geniepro: эй! в очередь!
[01:31:36] <valexey> geniepro: у тебя допустим transmitted_size = 2. То есть массив в два элемента.
[01:31:37] <geniepro> ну ща проверю
[01:32:00] <valexey> Первый раз прочитался байт. Потом ты со смещением в 1 пытаешься в этот массив из двух байт прочесть еще ДВА байта.
[01:32:18] <valexey> Отгадай с одного раза, что будет еси оно прочитает таки два байта, как ты и заказываешь?
[01:32:34] <valexey> Три байта в массив из двух байтов не влезет :-)
[01:32:46] <geniepro> но там после отправки одного блока пауза, пока не придёт подтверждение что блок зачитался успешно. так что лишних данных там не должно быть -- пустой поток должен получиться
[01:33:05] <valexey> Хаскель-хаскель... Читать из потока в массив научитесь!
[01:33:06] <valexey> :-)
[01:33:07] <тихий бот> valexey, ;-)
[01:33:12] <geniepro> не будет двух байтов при второй попытке чтения -- неоткуда им взяться
[01:33:12] <valexey> geniepro: ты проверил? ;-)
[01:33:30] <geniepro> там не должно такого быть!!!111
[01:33:48] <valexey> kemiisto: группа у тебя соответствует молекуле?
[01:33:56] <kemiisto> да
[01:33:57] <Жаба> kemiisto, да нед...
[01:34:07] <valexey> geniepro: так работает мой багофикс, или нет? ;-)
[01:34:10] <kemiisto> сейчас даже хочу выделить отдельный класс
[01:34:16] <kemiisto> Render::Molecule
[01:34:32] <kemiisto> и там внутри скомпозитить Render::Group
[01:34:41] <geniepro> писец у мя файл 200 метров медленно передаётся! минут 8. как так???
[01:34:44] <kemiisto> и одновременно
[01:34:50] <kemiisto> Chemistry::Molecule
[01:34:52] <valexey> так. а что там править приходится? Смотри, в редакторе какие-то команды. Блин. Какие? Пример хочу.
[01:35:08] <valexey> geniepro: откуда куда?
[01:35:21] <geniepro> полметра в секунду?? а как же сто метров в сек???
[01:35:26] <geniepro> локально
[01:35:28] <kemiisto> valexey: http://code.google.com/p/qdalton/
[01:35:32] <valexey> Ибо у меня по ssh ползет по домашнему вайфаю примерно также.
[01:35:33] <valexey> 500 Кб в секунду.
[01:35:34] <kemiisto> но там старая версия
[01:35:38] <kemiisto> удалить атом
[01:35:42] <kemiisto> добавить атом
[01:35:46] <kemiisto> удалить связь
[01:35:54] <kemiisto> добавить связь
[01:36:06] <kemiisto> не став версию для Mac =)
[01:36:11] <kemiisto> оно мусорит
[01:36:12] <geniepro> ну ладно дисковая операция -- допустим 20 метров в сек скорость считывания и записи на диск. всё равно в 40 раз медленнее!!!
[01:36:16] <valexey> А-а. Блин. И команды редактирования они одинаковы для химии и для рендерера, да?
[01:36:27] <valexey> kemiisto: тебя спасет Generic Message Bus!
[01:36:34] <valexey> Серьезно, без шуток.
[01:36:46] <kemiisto> я вот думаю
[01:37:01] <kemiisto> запилить всю функциональность в один класс
[01:37:03] <kemiisto> то есть
[01:37:09] <valexey> Но конечно без WITH, а банально с виртуальными функциями.
[01:37:15] <geniepro> MVC!!!111
[01:37:21] <kemiisto> Chem::Atom + Render::Atom -> QDalton::Atom
[01:37:22] <valexey> geniepro: по сути, да.
[01:37:24] <kemiisto> и так далее
[01:37:32] <valexey> Но тут немного другое. Тут нужны листнеры.
[01:37:38] <valexey> Если кто swing щупал и жабу вообще.
[01:37:43] <valexey> Паттерн наблюдатель.
[01:37:45] <valexey> Или как его там.
[01:38:07] <kemiisto> хм… Listener?
[01:38:13] <valexey> Короче, заинтересованые лица реализуют интерфейс подписчика на события редактирования, и подписываются.
[01:38:13] <kemiisto> посмотрю
[01:38:18] <kemiisto> да
[01:38:18] <Жаба> kemiisto, да нед...
[01:38:29] <kemiisto> спасибо, буду думать
[01:38:36] <valexey> generic message bus по мейнстримовски!
[01:39:11] <valexey> kemiisto: у меня на самом деле примерно такая же ведь дрянь. Точнее у меня эта дрянь уже второй раз вылазит за карьеру :-)
[01:39:19] <valexey> Вначале в скаде, теперь вот в оксиметрии.
[01:39:32] <valexey> Тоже голимый граф узлов, который нужно в рантайме модифицировать.
[01:40:04] <geniepro> писец! в шарпе низя создавать одинаковые переменные во вложенных областях видимости! "A local variable named 'readed' cannot be declared in this scope because it would give a different meaning to 'readed', which is already used in a 'parent or current' scope to denote something else"

[01:40:14] <valexey> В скаде так вообще 1 в 1 то же было. Были гуёвые представления, и был их редактор. И бала логика их работы.
[01:40:31] <valexey> geniepro: дуракоустойчивость же!
[01:40:52] <kemiisto> valexey: ну, по сути, любой гуёвый графический редактор
[01:41:44] <kemiisto> valexey: я тащемто подумывал насчёт слушателя
[01:41:50] <valexey> Угу.
[01:41:58] <kemiisto> я хотел запилить на сигналах-слотах
[01:42:05] <kemiisto> оно бы и было
[01:42:13] <valexey> Вообще рекомендую Портянкина покурить на счет Swing'a. Он там вначале хорошо основные идеи рассказывает.
[01:43:22] <kemiisto> http://en.wikipedia.org/wiki/Observer_pattern
[01:43:28] <kemiisto> The Qt <http://en.wikipedia.org/wiki/Qt_(toolkit)> C++ framework's signal/slot model <http://en.wikipedia.org/wiki/Signals_and_slots>
[01:43:30] <valexey> угу. Оно.
[01:43:30] <kemiisto> ну да
[01:43:38] <kemiisto> ёжику понятно
[01:44:13] <valexey> А в твоем редакторе будет текст как интерфейс?!
[01:44:36] <kemiisto> нет
[01:44:36] <Жаба> kemiisto, нет да!
[01:44:49] <valexey> вон, жабе виднее :-)
[01:48:21] <geniepro> вот так работает:
           int readed = 0, readedbuf = 0;
           do
           {   
               readedbuf = stream.Read(data, readed, transmitted_size - readed);
               readed   += readedbuf;

           } while (readed < transmitted_size && readedbuf > 0);
скорость 3.5 метра в сек -- всё равно не фонтан...
[01:49:21] <geniepro> хотя скорость связи по нашим интернетам по любому не выше мегабита в сек
[01:49:44] <valexey> geniepro: ну это ровно то же, что я и предлагал :-)
[01:50:03] <geniepro> да, непонятно почему такой баг ((( не должно быть такого (((
[01:50:36] <valexey> почему?  с моей колокольни (а я с нее вижу только этот код), все логично.
[01:50:49] <geniepro> transmitted_size   -= readedbuf; -- так низя, transmitted_size ниже нужна для логирования и тд...
[01:51:53] <geniepro> если вставить Application.DoEvents(); внутрь цикла, то скорость упадёт в 1.6 раза о_О
[01:53:05] <geniepro> теперь надо прикрутить шифрование. это уже завтречка )))
[01:53:11] <valexey> geniepro: дык после цикла readed будет как раз равно прежнему transmitted_size :-)
[01:53:18] <valexey> если все прочиталось
[01:53:18] <geniepro> писец три часа ночи пора спать )))
[01:53:33] <valexey> иначе можно подробно будет расписать где что обломалось
[01:53:42] <valexey> инвариант: transmitted_size + readed
[01:54:03] <valexey> " Application.DoEvents(); внутрь цикла, то скорость упадёт в 1.6 раза" -- это логично
[01:54:20] <valexey> ведь, если я правильно понимаю, будет проворачиваться очередь сообщений винды
[01:54:39] <geniepro> если чота обломалось, значит связь оборвалась. дисконнект и после паузы через Tread.Sleep() ))))) реконнект )))
[01:55:15] <valexey> :-)
[01:55:16] <тихий бот> valexey, ;-)
[01:56:03] <valexey> А про падонков таки зачтите: http://sim0nsays.livejournal.com/27342.html
[01:56:08] <valexey> может быть полезно
[01:57:34] <valexey> <look4awhile> идеальный код в таком раскладе должен выглядеть так
<look4awhile> void CPhysiscObject::OnCollide () { if ( IsRenderObject() ) { SetColor(RED); } else { // do nothing } };
<look4awhile> т.е. банально хочется лазить куда угодно и как угодно
<CEMEH> Точно CPhysicsObject, а не Ball?
<look4awhile> точно PhysiscObject
<look4awhile> хуже даже
<look4awhile> может быть
<CEMEH> А если хочется только для шарика?
<look4awhile> if ( IsRenderObject() && IsBall() ) { SetColor(RED); }
<look4awhile> более того runtime cost на такое не хочется вообще
<look4awhile> т.е 0 тактов - обязательное ограничение
[01:58:04] <valexey> Да, в обироне так не пооптимизируешь!
[01:58:14] <valexey> Тут никакой WITH трехтактовый не спасет!
[02:00:14] <geniepro> усем пока, бб
[02:00:32] <kemiisto> бб
[02:00:40] <kemiisto> тоже пойду
[02:01:09] <valexey> BB CB!
[11:14:45] <белый шум> стехи
[11:14:48] <тихий бот> Стехи!

Не помню свинское смущенье
Под скальпелем явилась ты
Как ябывдульское сужденье
Как жопа жаждет хуеты
[11:15:10] <белый шум> садюга
[15:31:51] <geniepro> всё-таки сишарп куда более дуракоустойчив, чем абируны...
[15:48:08] <valexey> geniepro: почему?
[15:48:30] <kemiisto> КЛЕВЕТЫ!
[16:10:05] <valexey> http://www.youtube.com/watch?v=xTB2Fbt7Ms8
[16:10:18] <valexey> http://www.musli.net/video/future.swf
[16:42:33] <geniepro> out и ref параметры в шарпе куда дуракоустойчивее, чем VAR в обироне, ну и компилятор умнее -- больше ошибок распознаёт
[16:44:19] <geniepro> хотя битовые операции меня в шарпе вымогают -- какой-то баг из за них у мя щас ((
[16:58:25] <geniepro> ну как обычно -- ашыпка у мя в логике, вместо + или | использовал & что ещё ждать? ))))) абирун тут бы никак не помог )))
[17:34:09] <valexey> битовые операции в шарпе точно такие же как в сях
[17:34:29] <valexey> geniepro: гм. а чем оно более дуракоустойчиво?
[17:35:12] <geniepro> больше ошибок определяет на стадии компиляции
[17:35:59] <geniepro> вот тока что объявление переменно по месту использования выявило у мя логическую ашыпку. в абируне пришлось бы тестить...
[17:37:17] <geniepro> в абируне требуется куда более внимательная вычитка исходника, чем в шарпе
[17:38:17] <geniepro> Илья постоянно упоминает, что вот он мол очень тщательно вычитывает тексты программ на КП -- неудивительно, ведь компилятор слабо помогает ему в этом
[17:39:29] <geniepro> короче -- у оберона выше требования к программисту, чем у сишарпа
[17:40:00] <geniepro> мелочи, но их количество перерастает в качество
[17:41:58] <valexey> geniepro: мне кажется что тут оберон совершенно не при чем.
[17:42:20] <valexey> Ошибки эти вылавливаются не из за языка, а из за компилятора.
[17:43:11] <geniepro> ну вот как выявит компилятор оберона, что я поставил не ту переменную в VAR параметре? а сишарповский выявляет
[17:43:19] <valexey> Это как в Си если сейчас напишешь нечто вроде {short i; scanf("%d",&i);} компилятор выдаст как минимум предупреждение.
[17:43:31] <valexey> geniepro: что значит не ту?
[17:43:50] <geniepro> во всяком случае имеющиеся компиляторы оберона вряд ли выявят
[17:44:24] <geniepro> ну не та переменная, которую я имел в виду -- описку допустил. оберон проглотил бы, сишарп споткнулся
[17:44:43] <valexey> ну, это уже зависит от количества кода писаного на этом языке. если кода мало, то зачем очень умные компиляторы?
[17:44:56] <valexey> geniepro: а чем они отличались?
[17:45:50] <valexey> /me реквестую пример
[17:47:34] <geniepro> ну вобщем описал я несколько переменных, которые инициализировались как out параметры процедуры, вызываемой после описания этих переменных
одну из переменных указал не ту, какую надо.
ниже компилятор споткнулся, что вот мол попытка использования неинициализированной переменной.
начал разбираться -- нашёл ошибку

как бы тут мне помог простенький и глупенький компилятор оберона? никак. заставил бы тратить время и нервы на отладку...
[17:48:06] <valexey> Инициализация переменных через out-параметры плохая идея :-)
[17:48:16] <geniepro> с другой стороны, в каком-нить другом языке, умеющим возвращать кортежи, такой ашипки вообще не возникло бы
[17:48:26] <geniepro> нормальная идея
[17:48:31] <valexey> Алсо тебе также ничем не помог бы простенький и глупенький компилятор шарпа :-)
[17:48:45] <geniepro> как не помог бы? помог же
[17:49:07] <valexey> а у тебя есть простенький и глупенький компилятор шарпа? ;-)
[17:49:09] <geniepro> а, ну значит компилер шарпа достаточно умный. что и требовалось доказать
[17:49:42] <geniepro> а есть ли достаточно умные компиляторы оберона?
[17:49:58] <valexey> Дык он умные не потому, что язык такой, а потому. что в него влили достаточно усилий/бабла, чтобы оно анализировало ошибки чайников.
[17:50:07] <valexey> С языком в данном случае это никак не коррелирует.
[17:50:08] <geniepro> си в этом плане конечно ещё хуже -- забыл бы я указать & -- а ему и пофигу...
[17:50:22] <valexey> Си? Нет конечно, не пофигу
[17:50:26] <valexey> Банально типы были бы разные.
[17:50:49] <valexey> type* отличается от type :-)
[17:50:54] <geniepro> ну как не пофигу? указал саму переменную вместо ссылки на неё -- компилеру откуда знать, как надо было?
[17:51:18] <valexey> foo(&a) это не то же что foo(a)
[17:51:32] <valexey> В первом случае ты передаешь УКАЗАТЕЛЬ на a, во втором ЗНАЧЕНИЕ а
[17:51:36] <valexey> типы разные.
[17:51:38] <geniepro> насколько я помню, компиляторы меня не спасали в таких случаях
[17:51:48] <valexey> Ты что-то путаешь.
[17:52:02] <valexey> Оно элементарно не скомпилируется.
[17:52:24] <valexey> void foo(type* a); отличается от void foo(type a);
[17:52:30] <valexey> разные типы.
[17:52:40] <geniepro> ну простейший пример scanf -- помню, были у мя ашыпки, когда я указывал не &n, а просто n -- а компилятору пофигу, компилирует как ни в чём не бывало
[17:52:56] <valexey> scanf это не простейший пример
[17:53:13] <valexey> это функция с любым числом аргументов.
[17:53:17] <valexey> любого типа.
[17:53:20] <geniepro> vararg? и что?
[17:53:25] <valexey> алсо современные компиляторы это отлавливают.
[17:53:37] <geniepro> ну может старыми я пользовался...
[17:54:03] <valexey> Поэтому функции с переменным числом аргументов в Си обычно плохая идея.
[17:55:13] <geniepro> насчёт вложенных в компиляторы средств -- оберонщики сами утверждают постоянно, что они не хотыт умного компилятор оберона.
[17:57:10] <valexey> $ cat test.c
#include <stdio.h>

int main()
{
       short i;
       scanf("%d", &i);
       return 0;
}

[17:57:23] <valexey> $ gcc -Wall test.c
test.c: In function ‘main’:
test.c:6: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘short int *’
[17:59:16] <valexey> Меняю scanf("%d", &i); на scanf("%d", i);
[17:59:19] <valexey> Получаю
[17:59:29] <valexey> gcc -Wall test.c                                                                                                        
test.c: In function ‘main’:                                                                                                                           
test.c:6: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’                                                                    
test.c:6: warning: ‘i’ is used uninitialized in this function
[18:00:16] <valexey> В каком месте в Си еще хуже? :-) А если не пользоваться элипсисом, то все отлавливается на уровне языка.
[18:00:25] <geniepro> а если short i; заменить на int i = 10; ?
[18:01:00] <valexey> $ gcc -Wall test.c
test.c: In function ‘main’:
test.c:6: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
[18:01:22] <valexey> Типы же разные.
[18:01:44] <geniepro> ну значит gcc достаточно умный
[18:02:41] <valexey> настолько, что анализирует даже строковые литералы
[18:03:42] <geniepro> а вот TinyC плевать на эти ашыпки хотел ))
[18:04:09] <valexey> а вот твой случай:
[18:04:12] <valexey> #include <stdio.h>

void foo(int* a) {
       *a = 10;
}

int main()
{
       int a;
       foo(a);
       return 0;
}

[18:04:26] <valexey> $ gcc test.c
test.c: In function ‘main’:
test.c:10: warning: passing argument 1 of ‘foo’ makes pointer from integer without a cast
test.c:3: note: expected ‘int *’ but argument is of type ‘int’
[18:04:36] <valexey> Заметь, оно выдает варнинг даже без -Wall ключика
[18:04:48] <geniepro> а оберонские компиляторы по своему уму на уровне TinyC. единственно не знаю, как там в XDS -- омжет и получше, чем блекбокс
[18:04:56] <valexey> А вот что с ключиком:
[18:05:00] <valexey> $ gcc -Wall test.c
test.c: In function ‘main’:
test.c:10: warning: passing argument 1 of ‘foo’ makes pointer from integer without a cast
test.c:3: note: expected ‘int *’ but argument is of type ‘int’
test.c:10: warning: ‘a’ is used uninitialized in this function
[18:07:23] <geniepro> TinyC выдал: "Noname1.c:10: warning: assignment makes pointer from integer without a cast" ))
[18:07:55] <valexey> Дык
[18:08:00] <valexey> Говорю же -- типы не совпадают.
[18:08:31] <geniepro> но моя-то ошибка была в том, что я не ту переменную указал! и компилер не помог!
[18:09:42] <valexey> Ну это обычная escape analysis он провел и выявил точно не инициализированные переменные. Это умеют делать все промышленные компиляторы.
[18:10:28] <geniepro> #include <stdio.h>

void foo(int* a, int* b) {
   *a = 10;
   *b = 20;
}

int main()
{
   int a, b;
   foo(&a, &a);

   return a + b;
}
вот ашыпка, на которую TinyC пюлюёт!
[18:10:53] <geniepro> что там GCC скажет?
[18:11:12] <valexey> Скажет что b не инициализированна.
[18:11:18] <valexey> Я и без тестов могу это сказать :-)
[18:11:26] <valexey> Это же сводится к одному из прошлых примеров моих.
[18:11:34] <geniepro> без тестов нужна внимательная вычитка
[18:12:04] <valexey> без тестов компилятора
[18:14:04] <geniepro> прикрутил сжатие Raiden -- скорость передачи файла упала на четверть ((
[18:14:30] <geniepro> но всё равно скорость на порядок выше, чем у наших интернетов...
[18:15:01] <valexey> Raiden это же не сжатие а вроде как шифрование
[18:15:12] <geniepro> Мугамба доволен ))) долго телился, никак не мог взяться за это шифрование
[18:15:23] <geniepro> ну да, шифрование, а не сжатие
[18:16:42] <geniepro> почти год наша инфа передавалась без шифрования. сжатие+сериализация хоть и не данные в открытом виде, но всё же шифрование лучше
[18:17:07] <geniepro> хотя важные данные всё равно дополнительно сжимались раром с опцией шифрования
[18:18:14] <valexey> Но так то теперь конечно лучше, да.
[18:19:29] <geniepro> да, сейчас будет так -- если данные сжимаются, то сжатие+шифрование, если не сжимаются, то просто шифрование
[18:19:52] <geniepro> а важные данные по прежнему сжимаются раром с шифрованием )))
[18:20:17] <geniepro> всё таки рар жмёт куда лучше, чем GZIP в исполнении дотнета
[18:20:52] <geniepro> кто-то по сотке звонит и ничего не говорит -- достал уже ((
[18:21:31] <valexey> Это Оберонщики. Они предупреждают!
[18:21:50] <geniepro> как они прознали номер моей сотки? о_О )))
[18:23:12] <valexey> оборонкоре же!
[18:24:03] <valexey> /me поставил tinyc на свой дебианчег
[18:24:14] <valexey> даже работает, странно.
[18:27:02] <geniepro> хороший компилер, от создателя qemu!
[18:28:05] <geniepro> tinyc --почти однопроходный. поэтому самый шустрый. но код генерируемый -- примерно как у юлекюоксовского компилера
[18:28:35] <valexey> у какого-какого комплилятора?
[18:28:43] <geniepro> был какой-то дистрибутив линупса, в котором при загрузке системы её исходники компилированлись -- 15 сек загрузка была
[18:28:51] <valexey> "юлекюоксовского" -- это кто,
[18:28:54] <valexey> ?
[18:28:55] <geniepro> блекбоксовского*
[18:28:56] <тихий бот> тварь я дрожащая, или тот, кому надо?
[18:29:33] <valexey> брр. нафига такой изврат? при каждой перезагрузки все пересобирать.
[18:29:44] <geniepro> главное, что бы общаясь с девушкой по имени Юля, не путать клавишу Ю с Б )))
[18:29:55] <valexey> Собственно даже при установке даже того же миникса ничего не собирается :-)
[18:30:00] <geniepro> ну кому-то надо было ))) прикалывались, видимо )))
[18:30:03] <valexey> ;-)
[18:32:33] <valexey> * SAFE! tcc includes an optional memory and bound checker. Bound checked code can be mixed freely with standard code.
[18:33:13] <geniepro> а как там включить эти проверки? опцией компилера?
[18:33:29] <valexey> видимо
[18:33:37] <valexey> ща сделаю man tcc :-)
[18:35:08] <valexey> -b
[18:35:32] <valexey> $ tcc -b test.c
[18:35:34] <valexey> как-то так
[18:38:47] <kemiisto> ПИШИ КОД НА АБИРОНЕ, БЛЕАТЬ!
[18:38:54] <kemiisto> И ЗВОНКИ ПРЕКРАТЯТСЯ!
[18:38:59] <kemiisto> :-D
[18:41:25] <geniepro> намана работает прога, пересылает туда-сюда файлы со сжатием и/или шифрованием без ошибок вроде ))
[18:42:10] <geniepro> а на работе невозможно работать -- шум гам тарарам куча народу куча неотложных дел! когда код писать?????
[18:42:45] <valexey> дома же :-)
[18:43:14] <geniepro> дома куда приятнее, но заставить себя работать ещё труднее ))
[18:43:51] <geniepro> tcc: invalid option -- '-b'
[18:45:25] <valexey> geniepro: вот тебе на эту тему http://www.ted.com/talks/lang/rus/jason_fried_why_work_doesn_t_happen_at_work.html
[18:45:32] <valexey> geniepro: возможно у тебя старая версия
[18:45:47] <valexey> какая версия компилятора у тебя?
[18:46:53] <valexey> $ tcc -v
tcc version 0.9.25

[18:47:15] <geniepro> 0.9.23
[18:48:48] <valexey> http://bellard.org/tcc/
[18:48:52] <valexey> качни новье :-)
[18:49:46] <geniepro> главное в описалове упоминается опция...
[18:49:58] <kemiisto> http://oberon.ch/blackbox.html
[18:50:02] <kemiisto> КАЧНИ ЛУЧШЕ!
[18:50:43] <geniepro> бб ацтой )
[18:50:44] <valexey> ну, у меня работает.
[18:51:02] <valexey> с этой опцией если лезешь не туда куда надо, программа сразу падает с сегфолтом
[18:51:11] <valexey> без этой опции может упасть, а может не упасть.
[18:51:14] <kemiisto> valexey: забань его за КЛЕВЕТЫ!
[18:51:20] <kemiisto> :-)
[18:51:21] <тихий бот> kemiisto, ;-)
[18:51:36] <geniepro> странно почему у мя старая версия -- недавно же качал... o_O
[18:52:00] <valexey> ты с официального сайта качал?
[18:52:28] <valexey> (Jun 17, 2005) TCC version 0.9.23 is out (Changelog). This is the first version with support for the Windows target.
[18:52:35] <valexey> 2005 год -- фига себе недавно!
[18:52:43] <valexey> (May 20, 2009) TCC version 0.9.25 is out thanks to Grischka (Changelog). TCC version 0.9.25 is the first that supports the x86-64 target. Thanks to Shinichiro Hamaji for this.
[18:52:48] <valexey> Вот эта у меня
[18:52:53] <geniepro> не помню, наверное. я несколько раз этот компилер качал, может новая версия де-то затерялась на винте 0))
[18:53:43] <valexey> дык качни новья :-)
[18:53:49] <valexey> двухлетней давности :-)
[18:55:02] <geniepro> да скачал уже ) ща проверю. нашёл у ся версию 0.9.24 ))
[18:57:40] <geniepro> нипашет )))
[18:57:48] <kemiisto> белый шум: они пишут на СИ! Скажи им! :-)
[18:58:01] <geniepro> он сбежал от нас ))
[18:58:17] <geniepro> стехи
[18:58:18] <тихий бот> Стехи!

Очкуешь нужное печенье
Под косячком стихов листы
Как эдакое вот сношенье
Как ангел просит школоты
[18:58:25] <valexey> значит под виндой даже tinyc ущербный :-)
[19:00:04] <kemiisto> :-D
[19:00:15] <kemiisto> ВНЕЗАПНО!
[19:00:32] <valexey> like usually :-)
[19:00:54] <valexey> поэтому везде все давно пользуют юниксы и юниксоподобное. то есть макось, или линукс.
[19:01:01] <kemiisto> никто другого и не ждал
[19:01:16] <valexey> или даже Haiku, ибо даже там программы прямее и среда здоровее чем в вендах.
[19:01:33] <kemiisto> гегемония виндавс - только на писюках домохозяек
[19:01:52] <kemiisto> да
[19:01:53] <Жаба> kemiisto, да нед...
[19:02:02] <kemiisto> а ещё под виндавс есть ББ!
[19:02:12] <kemiisto> тоже, считаешь, минус
[19:02:17] <kemiisto> :-D
[19:02:50] <geniepro> у линупсов зато гуи десктоп не юзабельный! )))
[19:04:35] <kemiisto> юзабельный
[19:04:47] <kemiisto> ниасилил просто кто-то
[19:05:58] <geniepro> о, я ща зоринос ставить буду. дригие пока не пошли у мну )))
[19:06:03] <valexey> У меня юзабельный. Что я делаю не так? :-)
[19:06:10] <geniepro> нипантяно )))
[19:06:15] <valexey> А, да. Я знаю что я делаю не так.
[19:06:20] <geniepro> что?
[19:06:23] <valexey> Я через гуй не пытаюсь настраивать линукс :-)
[19:06:34] <geniepro> наверное там и гуи нету )))
[19:06:36] <valexey> Я использую гуй по его прямому назначению -- для графических программ.
[19:06:45] <valexey> Да не. У меня тут KDE.
[19:06:53] <geniepro> какая версия?
[19:07:00] <geniepro> поему не гном?
[19:07:03] <valexey> Какая-то четверка.
[19:07:07] <valexey> Гном на ноутах не юзабелен.
[19:07:12] <geniepro> или lxde? xfce?
[19:07:13] <kemiisto> КЕДЫ, СУКА, РУЛЯТ!
[19:07:24] <kemiisto> а настраивать через гуй
[19:07:27] <valexey> А зачем, если в кедах все удобно и работает?
[19:07:28] <geniepro> кде 4 жутко тормозит (
[19:07:31] <kemiisto> это, простите, ололо
[19:07:42] <valexey> Нет, не тормозят. :-)
[19:07:48] <valexey> Но ноуте моем по крайней мере.
[19:08:00] <valexey> А вот гнум как раз тормозятина.
[19:08:03] <kemiisto> valexey: у гнома да, элементы UI ОГРОМНЫЕ!
[19:08:14] <kemiisto> кнопка с пол экрана
[19:08:18] <kemiisto> фтопку!
[19:08:24] <geniepro> ну да, примерно как на вин7 посидишь -- вроде намана всё, а на ХР пересядешь! мля пипец вин7 тормоз оказывается )))
[19:08:26] <valexey> Они мало того что огромные, у него еще и верхне-ниюнюю панель по вертикали не сделать!
[19:08:42] <kemiisto> ДА!
[19:08:58] <valexey> В результате оно отжирает по вертикали драгоценные пиксели.
[19:09:00] <valexey> Поэтому КДЕ
[19:09:10] <valexey> Изначально я пользовался, кстати, гномом.
[19:09:10] <kemiisto> таперяче даже для сборки зарелизенного Qt Creator нужен Perl
[19:09:11] <geniepro> в зорин-ос модифицированный гном -- там тока одна панель в низу -- типа как таскбар в винде
[19:09:12] <kemiisto> =)
[19:09:31] <valexey> Панель снизу -- угребище.
[19:09:33] <kemiisto> я тоже с гнома начинал
[19:09:35] <valexey> Для ноутов :-)
[19:09:45] <geniepro> панель внизу -- рулез!
[19:10:06] <valexey> C фига ли?  У меня и в виндах оно слева, чтобы по вертикали место не занимало.
[19:10:09] <geniepro> тем более эта понель может скрываться
[19:10:10] <valexey> Особенно на ноуте.
[19:10:35] <geniepro> никогда не понимал -- какой прикол в панели слева/справа/сверху???
[19:10:41] <valexey> И на десктопе начиная с NT4 она слева.
[19:10:46] <valexey> Сверху не интересно.
[19:10:50] <valexey> А слева -- правильно
[19:10:56] <valexey> Просто потому, что по вертикали место не жрет.
[19:11:10] <valexey> Особенно сейчас в эпоху широкоформатного говна вместо мониторов
[19:11:19] <geniepro> зато по горизонтали жрёт куда больше ))
[19:11:34] <geniepro> вот щас я слева поставил -- ужас!
[19:11:48] <valexey> Неа. Столько же :-) По крайней мере у меня в КДЕ :-)
[19:12:09] <geniepro> теперь что бы в меню попасть -- нужно точное позиционирование мышки!!!
[19:12:14] <valexey> Иконки то квадратные, без подписей -- им пофиг как располагаться.
[19:12:25] <valexey> Почему?
[19:12:40] <valexey> В виндах что, в кнопку целиться надо?
[19:13:23] <geniepro> ну если сверху/слева ничего нет -- мушку кинул в верхний левый угол и попал куда надо, а щас смотреть надо, как бы не щёлкнуть на кнопку старт
[19:13:45] <kemiisto> valexey: не, тут уже ничего не поможет
[19:13:53] <kemiisto> больной  безнадёжен
[19:14:12] <kemiisto> официальная медицина расписывается в своём бессилии
[19:14:17] <kemiisto> :-D
[19:14:28] <valexey> я с клавиатуры по меню хожу обычно.
[19:14:39] <geniepro> таскбар занимает всего 30 пикселов в высоту -- при размере экрана 1080 пикселов в высоту это всего 3%
[19:15:11] <valexey> а при высоте в 800? :-)
[19:15:23] <geniepro> а нинадо такого экрана ))
[19:15:41] <valexey> ok. найди ноут с другим экраном
[19:16:01] <geniepro> да есть же ноуты с экраном 1920х1080 при 15"
[19:16:13] <geniepro> грят рулезно
[19:16:32] <valexey> и лупу в подарок!
[19:16:39] <kemiisto> :-D
[19:16:56] <geniepro> зато нинадо ClearType включать -- шрифты итак наманные
[19:17:23] <valexey> угу, но места на экране от этого разрешения больше не становится
[19:18:38] <geniepro> всё! буду ставить зоринос. хотя там гном, он он вроде под венду неплохо косит ))) посмотрим, смогу ли я там интернет настроить ))
[19:18:52] <valexey> /me сегодня будет сношать нониновский оксиметр с дебианом через блютус.
[19:19:06] <geniepro> удачи ))
[20:03:49] <geniepro> ураааа! я настроил интернет в линупсе!!! зорин-ос рулез!!!
[20:04:45] <geniepro> а как-нить мона сделать, что бы битторент работал как в винде, так и линупсе, что бы намана скачивание продолжал при переключении с одной ос на другую?
[20:05:24] <geniepro> стехи
[20:05:24] <тихий бот> Стехи!

Угробил сраное хотенье
На кладбище забилась ты
Как у ворушников паденье
Как гений жаждет красоты
[20:05:35] <geniepro> фас
[20:05:35] <тихий бот> гав
[20:05:36] <Жаба> тихий бот, мяу
[20:05:37] <тихий бот> гав
[20:05:38] <Жаба> тихий бот, мяу
[20:05:39] <тихий бот> гав
[20:05:40] <Жаба> тихий бот, мяу
[20:05:40] <тихий бот> гав
[20:05:41] <Жаба> тихий бот, мяу
[20:05:42] <тихий бот> гав
[20:05:43] <Жаба> тихий бот, мяу
[20:05:44] <тихий бот> гав
[20:05:44] <Жаба> тихий бот, мяу
[20:05:46] <тихий бот> гав
[20:05:46] <Жаба> тихий бот, мяу
[20:05:48] <тихий бот> ррррр
[20:05:48] <Жаба> тихий бот, мыыррррр
[20:05:50] <тихий бот> valexey, как там Оберон-07 поживает?
[20:12:28] <geniepro> test
[20:12:28] <Жаба> geniepro, passed
[20:12:29] <тихий бот> geniepro, тоже пассед
[20:12:45] <geniepro> .ver geniepro
[20:12:46] <тихий бот> geniepro, no such command
[20:13:05] <geniepro> .version geniepro
[20:13:06] <тихий бот> geniepro, no such command
[20:13:25] <geniepro> version geniepro
[20:35:54] <geniepro> стехи
[20:35:55] <тихий бот> Стехи!

Очкуешь пьяное хотенье
На кладбище из темноты
Как очевидное сплетенье
Как Спарта жаждет типа ты
[20:36:45] <geniepro> какая всё-таки глючная хрень этот гном ((
[20:37:44] <geniepro> в меню Пуск (или как оно там называется в гноме) элементы дублируются и глюча -- жму одно, наживается другое
[21:08:05] <genieprox> стехи
[21:08:06] <тихий бот> Стехи!

Какое чудное хотенье
Из головы мои трусы
Как эдакое вот сплетенье
Как символ женской простоты
[21:58:48] <valexey> Это что-то в твоем дистрибутиве настроено через задницу. Ибо я ни разу такого не наблюдал.
[22:04:43] <valexey> http://habrahabr.ru/blogs/apple/119270/
[22:38:41] <genieprox> я уже несколько раз с таким багом сталкивался в разных дистрибутивах. почему винда так никогда не глючит?
[22:41:03] <valexey> Потому, что у винды только один дистрибутив.
[22:41:31] <valexey> Кроме того, ты постоянно ставишь какие-то левые экспериментальные дистрибутивы линукса :-)
[22:41:55] <valexey> Есть Генту, Шлакварь, Дебиан, Красный Шляпа. Всё. Остальное изврат.
[22:42:06] <genieprox> да я связываюься тока с основными дистрибутивами
[22:42:42] <valexey> Дебиан ставил?
[22:42:46] <genieprox> а эти 4 (Генту, Шлакварь, Дебиан, Красный Шляпа) -- мне за них даже браться страшно. они же ужас в плане юзабельности
[22:43:03] <genieprox> дебиан давно как-то вроде ставил -- ничо хорошего
[22:43:28] <valexey> Почему ужас? У меня дебиан, на работе дебиан. Все хорошо.
[22:43:58] <genieprox> там же вроде 4 двд надо для нормальной установки?
[22:44:12] <valexey> Что подразумевается под нормальной? :-)
[22:44:13] <genieprox> каганов хорошо писал про дебиан
[22:44:18] <valexey> Я ставил с флешки на 150 мегабайт.
[22:44:41] <genieprox> вот у венды хр -- один сиди -- у всё отлично! а эти линупсы... жесть какая-то ((
[22:44:49] <valexey> 4 ДВД -- это весь репозиторий по сути :-)
[22:45:04] <valexey> У винды один СД (теперь уже два ДВД) -- это только система.
[22:45:18] <valexey> У дебиана 4 ДВД это система + весь софт который может понадобиться.
[22:45:39] <genieprox> как два двд? вроде 3.2 гига дистрибутив вин7
[22:45:53] <valexey> Или один. Не помню.
[22:46:40] <genieprox> меньше одного. там куча вариантов системы на одном двд -- 32/64 бита, разные варианты установки -- Home, Pro, Enterprise и тд
[22:46:45] <valexey> http://www.debian.org/CD/
[22:46:50] <valexey> CD :-)
[22:47:07] <valexey> Ога. И нуль софта.
[22:48:56] <genieprox> на дисках с линуксом тоже софта почти нуль -- единственно встроенный офис, и то не везде
[22:51:02] <valexey> мы говоили про 4ре ДВД дебиана. Так вот -- там полный репозиторий.
[22:51:47] <genieprox> да там софт непонятного назначения, к тому же устаревший. всё равно с сайтов производителей придётся скачивать новые версии
[22:52:00] <valexey> c дуба рухнул?
[22:52:33] <genieprox> ну вот хаскелл там непонятно какого года выпуска -- придётся скачивать. опера. да всё что нужно для жизни
[22:52:38] <valexey> Я пользуюсь в дебиане только тем что есть в репозитории :-)
[22:52:55] <valexey> опера? опера вообще не опенсорс и она там не нужна :-)
[22:53:11] <genieprox> опера 9 версии небоась, если вообще есть, ghc 6.6...
[22:53:31] <valexey> ghc 6.12
[22:53:47] <valexey> оперы естественно нет. и не будет. не опенсорс.
[22:53:49] <genieprox> а текущая версия 7
[22:53:58] <valexey> текущая семерка еще не стабильна.
[22:54:03] <genieprox> ну вот и зачем нужны такие 4 двд?
[22:54:22] <genieprox> ghc 7 вполне стабильна
[22:54:29] <valexey> какие такие? народ не рекомендует семеркой пользоваться. никто и не пользуется :-)
[22:54:36] <genieprox> у мя багов по крайней мере не было
[22:54:40] <valexey> в haskell platform семерка уже входит?
[22:54:47] <genieprox> да
[22:54:48] <Жаба> genieprox, да нед...
[22:54:50] <genieprox> давно уже
[22:55:38] <genieprox> 7.0.3
[22:56:13] <valexey> genieprox: а ты попробуй пройти по ссылкам haskell platform
[22:56:19] <valexey> и скачать для линукса :-)
[22:56:32] <genieprox> Glasgow Haskell Compiler, Version 7.0.3, for Haskell 98, stage 2 booted by GHC version 6.12.2 -- нипанятно, что за " stage 2 booted by GHC version 6.12.2"
[22:58:08] <genieprox> посмотрел щас фильму Трещины с Евой Грин -- ничо, ничо так... концептуально...
[22:58:14] <valexey> Я ставил haskell platform на мак недавно. (пару месяцев назад). Так вот, там ghc 6.12
[22:59:08] <genieprox> для мака вапще вроде неофициальные порты GHC
[22:59:44] <valexey> официальные
[22:59:55] <valexey> http://hackage.haskell.org/platform/index.html
[23:00:45] <valexey> вот скажем для FreeBDSM -- не официальные
[23:08:15] <kemiisto> забавно
[23:08:33] <kemiisto> а этой самой haXe компиллер писан на окамле
[23:08:40] <kemiisto> :-)
[23:08:40] <тихий бот> kemiisto, ;-)
[23:09:36] <kemiisto> valexey: я ставил haskell platform пару недель назад на Mac
[23:09:44] <kemiisto> у мну ghc-7.0.3
[23:10:02] <kemiisto> а вот в кубунте мало того, что 6
[23:10:08] <kemiisto> так и его не поставить
[23:10:12] <kemiisto> бо баг
[23:10:17] <kemiisto> в пакете
[23:34:22] <valexey> убунта не нужна.
[23:34:28] <valexey> ибо это глюкалово еще то.
[23:34:36] <valexey> ну, значит обновили платформу
[23:35:05] <valexey> kemiisto: компиляторы вообще хорошо на камлах да на хаскелях писать.
[23:35:15] <kemiisto> нашёл прелестный мульт
[23:35:16] <valexey> Особенно компиляторы экспериментальных языков.
[23:35:19] <kemiisto> http://youtu.be/P6RPAh7ql3E
[23:35:35] <genieprox> вау! я запустил QNX Neutrino 6.5 в вмваре плейере! )))
[23:36:02] <genieprox> оно работает!!!
[23:44:08] <valexey> kemiisto: это ж про Страуструпа!
[23:44:24] <kemiisto> пачиму?
[23:44:26] <kemiisto> ааа
[23:44:29] <kemiisto> имя!
[23:44:47] <valexey> И кресты в конце жизни!
[23:45:47] <valexey> Причем уже НАВЕЧНО!
[23:46:33] <kemiisto> :-D
[23:47:09] <valexey> Причем по книжкам его видно, что он пытался, пытался вырваться!
[23:47:19] <valexey> Но безуспешно. Обратная совместимость ибо.
[23:51:14] <genieprox> в этой QNX Neutrino eval нету браузера!!!
[23:53:09] <valexey> нинужен!
[23:53:14] <valexey> браузер то есть
[23:53:26] <valexey> fetch'а хватит на все!
[23:53:53] <valexey> ххх: Чертова работа... позавчера ушел в 3 часа ночи, вчера ушел в час ночи:(
yyy: Что, вчера отпросился?
[23:54:52] <genieprox> ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/misc/bsd-family-tree
[23:56:55] <valexey> здравствуй, дерево!
[23:58:01] <valexey> genieprox: и шо?
[23:58:14] <valexey> кстати, в этом дереве хрень имеется
[23:58:17] <valexey> точнее не имеется
[23:58:24] <valexey> они начисто там проигнорировали другие оси
[23:58:48] <valexey> по этому дереву например выходит, что MacOS X это чистая бздя :-)
[23:58:54] <valexey> А это далеко-о не так.
[23:59:10] <valexey> Там от бзди даже не половина, а меньше.