[00:23:16] <madzi@jabber.ru> Всем привет.
[00:23:29] <valexey > hi!
[00:29:39] <madzi@jabber.ru> а что случилось с форумом ?
[00:29:59] <valexey > там же написано :-)
[00:30:47] <madzi@jabber.ru> там написано разплывчато :), хотелось конкретики
[00:31:05] <valexey > гм. вроде все конкретно изложил и аж письмо с саппорта привел
[00:31:12] <valexey > что не ясно? :-)
[00:31:56] <madzi@jabber.ru> :) не ясно когда наступит этот as soon :)
[00:32:26] <valexey > а там так и написано - они не знают когда допилят
[00:32:44] <valexey > As of now we do not have any ETA
[00:33:11] <madzi@jabber.ru> а как этот хостинг называется ?
[00:33:23] <valexey > ionvm
[00:33:34] <madzi@jabber.ru> спасибо
[00:33:54] <madzi@jabber.ru> внесу в чёрный список, чтобы никогда не пользоваться :)
[00:34:26] <valexey > :-)
[00:35:28] <valexey > то есть одно из двух - либо они запустятся и я выцеплю оттуда базу, либо у меня кончится терпения и я запущу форум с бекапа
[00:35:28] <madzi@jabber.ru> забавные логи однако...
[00:36:12] <valexey > в чем забавность? :-)
[00:36:51] <madzi@jabber.ru> читаю про выбор заграницы. Определился ?
[00:37:06] <madzi@jabber.ru> Тут у нас в конторе некоторые мечтают уехать в Санта-Клару
[00:39:34] <valexey > ну, я не мечтаю особо куда-то мигрировать. но возможности рассматриваю. вообще прежде чем мигировать неплохо бы хотя бы с полгодика-год пожить в предполагаемом новом постоянном месте жительства
[00:40:10] <madzi@jabber.ru> согласен. сначала нужна разведка
[00:40:36] <madzi@jabber.ru> я бы европу рекомендовал, всё таки не так далеко :)
[00:40:59] <valexey > хез. новый мир таки местами забавней старого. старый мир хуже принимает чужаков
[00:41:43] <madzi@jabber.ru> Тогда в Новую Зеландию или Австралию. там отношение получше будет, чем в Америке
[00:41:55] <madzi@jabber.ru> И тепло круглый год
[00:41:55] <valexey > может быть
[00:42:12] <madzi@jabber.ru> а мне Чехия нравится
[00:42:51] <valexey > жить/работать или приехать в отпуск?
[00:43:29] <madzi@jabber.ru> жить и работать, да и отдыхать тоже можно, но иногда хочется на море :)
[00:46:16] <valexey > на серверный ядовитый океян!
[00:47:41] <madzi@jabber.ru> можно и туда, когда оттаит :)
[00:53:55] <valexey > madzi@jabber.ru: а ты уже прикупил Проект Оберон Вирта?!
[00:53:56] <valexey > ;-)
[00:54:16] <madzi@jabber.ru> нет. в нашу деревню ещё не завезли
[00:54:57] <madzi@jabber.ru> у меня есть английский пдф-ник
[00:55:00] <valexey > гм.  а это куда?
[00:55:08] <valexey > английский пдф есть давно и у всех
[00:57:49] <madzi@jabber.ru> В деревню, к тётке, в глушь, в Саратов :)
[00:58:28] <valexey > а туда озон не доставляет?
[00:58:42] <madzi@jabber.ru> С озоном мороки много
[00:59:27] <valexey > гм. разве?  я заказал и через два дня книжка на руках
[01:00:10] <madzi@jabber.ru> у нас с Москвы почта 2 недели идёт (если повезёт), а тебе куда доставляют?
[01:01:01] <valexey > а я ж не почтой россии
[01:01:04] <valexey > в Нижний Новгород
[01:01:17] <valexey > у них у нас есть пункт выдачи. вот я оттуда самовывозом и забрал
[01:01:34] <madzi@jabber.ru> у нас такого пока нету
[01:01:46] <madzi@jabber.ru> в лучшем случае - курьерская доставка
[01:01:52] <valexey > есть
[01:01:55] <valexey > http://www.ozon.ru/context/detail/id/1687456/#4747715
[01:02:01] <madzi@jabber.ru> но тогда книжка не подъёмная будет
[01:02:08] <valexey > не прибедняйся :-)
[01:02:14] <madzi@jabber.ru> в смысле не нужна :)
[01:02:31] <madzi@jabber.ru> Мне и английской хватает, или туда что-нибудь наши дописали по доброте душевной ?
[01:04:53] <valexey > хез. но перевод вроде хороший. читается (по мне) легче английского
[01:05:11] <valexey > в обеденный перерыв там почитать, перед сном и так далее
[01:05:25] <valexey > когда мозг уже не может уберсосредоточиться
[01:05:58] <madzi@jabber.ru> ну... может когда в Москве буду, куплю
[01:07:31] <valexey > да ладно. доставка там копеешная же (до пункта выдачи если)
[11:52:18] <ilovb> "Прожект" нужно в ЧЯ вкладывать в электронном виде как документацию :)
[11:53:40] <ilovb> Один хрен там многое из Оберона содрано
[11:55:07] <romiras> Какой прожект?
[11:55:20] <ilovb> "Проект оберон"
[11:55:44] <ilovb> книжку имею ввиду я
[11:56:11] <romiras> Да. Я не сразу уловил контекст.
[11:57:06] <ilovb> А в текстовой подсистеме Оберона действитель двусвязный список используется
[11:57:35] <ilovb> В книжке сам вирт объясняет, почему отказались от произвольного эффективного доступа
[11:58:05] <ilovb> Как обычно у Вирта: заради простоты :)
[11:59:50] <romiras> Ему проще, чтобы не "париться" с реализацией. :)
[12:00:23] <ilovb> У меня такая мысль интересная возникла во время чтения....
[12:00:50] <ilovb> Что если бы Вирт не тогда задумал Оберон делать, а сегодня :)
[12:01:17] <ilovb> Что из себя эта система представляла бы?
[12:02:26] <romiras> Сегодня он придумал бы нечто другое. Ведь Оберон уже успел повлиять на многие языки. Да и на наоборот
[12:04:19] <ilovb> Я знаю! Я знаю! У него додиез бы получился :D
[12:07:33] <romiras> Ага. Компактненький такой...
[12:12:39] <ilovb> А еще меня одна мысль посещала: жалко, что Вирт СУБД не увлекался
[12:13:08] <ilovb> Очень интересно было бы почитать на эту тему в его исполнении :)
[12:14:21] <romiras> Вирт - электронщик, и этим всё сказано.
[12:14:23] <ilovb> SQLite монстром наверно показался бы :D
[12:20:45] <ilovb> valexey: А белка и правда супер :)
[12:23:27] <romiras> Вирт скорее реализовал бы аппаратную поддержку базовых функций БД, а программно - обошёлся бы
небольшим абстрактным слоем. :)
[12:33:32] <romiras> Кто что думает насчёт сложности создания фронтенда Оберон-0 (учебного) к GCC?
Насколько я понял, этап кодогенерации тогда отпадает вообще. При этом получаем поддержку всех платформ, что поддерживается gcc.
[12:35:04] <romiras> Сначала Oberon-0, потом Oberon-07, Oberon-02 и, наконец, CP. Как вам, лесенка?
[12:44:13] <ilovb> А там бакенд единый для всех языков?
[12:44:37] <ilovb> Или имеется ввиду генерить код на Си?
[12:46:44] <romiras> Фронтенд (драйвер языка) генерирует абстрактное синтаксическое дерево, которое потом преобразуется middle-end в оптимальную
оптимизированную структуру, которая затем скармливается back-end - собственно, генерации целевого кода.
[12:47:29] <romiras> gcc-ada, gcc-go, gcc-modula-2, ...
[12:48:02] <romiras> А вот gcc-oberon явно не хватает.
[12:49:09] <romiras> В общем, потребуется "окунуться" в недры GCC
[12:55:50] <ilovb> А с документацией там как? Я например с GCC вообще дела не имел
[12:57:53] <romiras> Документация присутствует +/-. Вот только пошаговой инструкции нема :)
[13:00:12] <ilovb> Мне вот думается, что если и делать, то сразу CP. Исходники парсера уже есть. Не думаю, что их сильно переделывать придется
[13:00:26] <ilovb> Хотя... надо ковыряться ;)
[13:04:02] <romiras> Сразу CP? Ого. Ого-го... -го.
[13:04:39] <romiras> Исходники CP написаны на нём сам же. Так что не поможет.
[13:07:12] <romiras> А вот статья почему не стоит связываться с LLVM:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2011-October/043719.html (LLVM IR is a compiler IR)
[13:10:55] <ilovb> тогда я видимо не понял, что значит "драйвер языка"
[13:11:15] <ilovb> На CP значит этот "драйвер" нельзя написать?
[13:12:30] <ilovb> почему?
[13:12:45] <romiras> драйвер является звеном в компиляции GCC. Для этого драйвер должен говорить с GCC на одном языке - Си.
[13:14:46] <ilovb> А DLL совсем никак? :)
[13:15:49] <ilovb> Хатя какие там DLL. Херню сказал
[13:16:58] <ilovb> Да... Отсутствие модульности в сях - это хреново...
[13:17:05] <romiras> В итоге ведь всё компилируется GCC, а не сторонними инструментами. Как я понял, фактически такой драйвер является монолитной частью
компилятора нового языка (скомпилированного средствами GCC).
[13:17:21] <ilovb> Да, да... Я понял уже
[13:17:35] <romiras> Я не разбирался как работает oo2c
[13:18:16] <romiras> Наверно сам оптимизирует код и выдаёт C.
[13:18:55] <ilovb> Надо из CP объектники для Си генерить. А там заголовочный файлик и усё :D
[13:19:30] <ilovb> Кстати, если серьезно, такое возможно?
[13:20:08] <romiras> Это возможный вариант, но требуются знания в целевой архитектуре и кодогенерации, как таковой.
[13:20:08] <ilovb> "Наверно сам оптимизирует код и выдаёт C." - Да, наверно так
[13:21:08] <ilovb> Так первую версию для 386 забадяжить. А дальше методом раскрутки :)
[13:21:59] <romiras> www.linux.com/learn/docs/ldp/529-gcc-frontend-howto
[13:22:19] <ilovb> Т.е. сделать генерацию объектника для 386 для Си. Дальше переделать парсер на новую структуру синт. дерева. А дальше раскруткой
[13:23:27] <romiras> ... пока, тем временем, архитектура x86 не устареет напрочь :)
[13:23:34] <ilovb> :D
[14:24:08] <valexey > гм. а чем вам написание нормального фронтенда для  gcc не катит?
[14:24:19] <valexey > ну противно конечно, это вам не llvm, но что же делать? :-)
[14:25:50] <valexey > на заметку - при изучение новой технологии пошаговый отладчик крайне необходим
[14:26:03] <valexey > то есть нового языка, либы оси и так далее
[14:26:17] <valexey > то же касается и обучения
[14:35:49] <romiras> Меня удивляет, что виртовский Оберон-0 так плохо освещается на академических курсах компиляторо-строения. По идее, уже давно
должен был увидеть свет gcc-фронтенд для него.
[14:37:17] <valexey > для академический упражнений же интересней свой бекенд нарисовать
[14:38:45] <romiras> стимула должно быть больше, но интересно может быть не многим
[14:39:47] <valexey > а написание фронтенда к gcc это не столь увлекательно, это  http://pics.livejournal.com/morontt/pic/000a8241
[14:41:16] <romiras> :) это надо спросить у гугловцев, которые написали к нему фронтенд для Го
[14:42:09] <romiras> С другой стороны, чем проще язык, тем меньше должно возникнуть с ним непредвиденных сложностей.
[14:42:15] <valexey > а там точно гугловцы писали?
[14:42:27] <valexey > ибо официальный компилер это таки не gcc фронтенд
[14:42:45] <romiras> Ну есть же gccgo
[14:42:49] <valexey > есть
[14:42:57] <valexey > но у меня ощущение что это писали не гугловцы
[14:43:12] <romiras> а есть разница?
[14:43:17] <valexey > угу
[14:43:31] <valexey > например оно не умеет Go версии 1 :-)
[14:43:47] <valexey > ну и там по мелочам тоже есть.  не все реализовано и так далее
[14:44:06] <valexey > тащемто для того же google app engine для Go официально НЕ используется gccgo
[14:44:32] <romiras> то есть как это не умеет 1-ю версию? У них есть другой компилятор для Го?
[14:45:02] <valexey > ну да. gccgo появился совсем недавно и он не является основным компилятором для Go
[14:45:06] <valexey > так, сторонняя поделка
[14:45:33] <valexey > у Go как бэ свой компилятор
[14:45:37] <valexey > точнее набор компиляторов
[14:45:48] <valexey > корнями уходящий в Plan9
[14:46:50] <romiras> gcc - монстр, конечно.
[14:48:13] <romiras> есть другой вариант изврата: написать компилятор Оберон-0 на FPC...
[14:48:27] <valexey > 6g сам компилятор зовется
[14:48:47] <valexey > а почему именно Оберон-0? В смысле зачем этот обрубок?
[14:48:53] <romiras> правда, кодогенерацию опять самому
[14:49:22] <romiras> ну надо же с чего-то начинать
[14:49:59] <valexey > а fpc сам кодогенерирует?
[14:50:19] <romiras> да, насколько мне известно. В отличие от GPC
[14:50:35] <valexey > ну, gpc это часть gcc. так что с ним все ясно
[14:50:46] <valexey > а у fpc вроде бы и компоновщик свой есть
[14:51:14] <romiras> он сам по себе. Даже поддержка iphone
[14:52:02] <valexey > угу. в делфях потому для арма его и пользуют
[14:52:23] <valexey > но когда-то он вроде обычный компоновщик системный пользовал. из binutils
[14:53:55] <valexey > romiras: сделай компилятор для Оберона-0 в js :-)
[14:54:16] <romiras> да ну его, этот js
[14:54:32] <valexey > а чем он тебе в качестве асма плох?
[14:54:53] <valexey > машкод вообще говоря не приятней js будет в плане непосредственного кодинга
[14:55:07] <romiras> Не хочу заниматься кодогенерацией
[14:55:58] <romiras> вообще. Хочу чтобы этим занимались внешние инструменты, а я писал бы только сканер и парсер языка
[14:56:43] <valexey > ну, сканер и парсер это скучно. это ж затрагивает только второстепенную вещь языка - его синтаксис. до семантики языка парсеру и сканеру пофиг.
[14:57:02] <valexey > кроме того, парсер и сканер настолько скучны, что могут быть сгенерированы автоматически :-)
[14:57:35] <ilovb> :D
[14:57:55] <romiras> кем?
[14:58:03] <ilovb> COCO
[14:58:20] <ilovb> и иже с ним
[14:58:36] <valexey > lex+yacc
[14:58:40] <valexey > Coco/R
[14:59:06] <valexey > antlr
[14:59:10] <valexey > их куча
[14:59:21] <valexey > на входе грамматика языка, на выходе код парсера и лексера
[14:59:49] <valexey > но в грамматике содержится на самом деле лишь маленькая толика языка
[15:00:13] <romiras> где описывается семантика?
[15:00:25] <valexey > словами в описании языка :-)
[15:00:32] <valexey > формально семантику обычно не описывают
[15:01:03] <valexey > (просто потому, что если такое описание и может существовать, то оно будет весьма бесполезно для реальных нужд)
[15:02:00] <romiras> поясни что значит "словами"
[15:02:22] <romiras> сам комплятор писал?
[15:03:22] <valexey > в описании языка словами (а не формально в РБНФ) семантика описывается
[15:03:47] <valexey > если про реализацию компилятора - то код работающий с семантикой пишется там ручками, в отличае от парсера и лексера
[15:05:13] <romiras> так разве парсер не занимается интерпретацией семантики языка?
[15:05:40] <ilovb> он занимается синтаксисом
[15:05:54] <ilovb> и все
[15:06:39] <valexey > парсер например ничего не знает о модели памяти языка
[15:06:51] <valexey > и не знает что такое оператор +
[15:07:49] <valexey > грубо говоря парсер, это SAX-парсер для XML, ну или DOM, если он тебе потом дерево выдает синтаксическое.
[15:07:50] <romiras> ну, промежуточное представление исходного кода чем создаётся?
[15:08:20] <valexey > а что ты под промежуточным представлением понимаешь? AST - тоже промежуточное представление. но его не достаточно для кодогенерации
[15:09:03] <valexey > берется парсер (например SAX), вешаются калбэки на его события, в калбеках уже анализ семантики и кодогенерация (не важно какая)
[15:10:17] <valexey > гм. похоже в Go нет тернарного оператора. пичалька
[15:10:34] <romiras> я вот про это: http://www.redhat.com/magazine/002dec04/features/gcc/figs/tree-ssa-phases.png
[15:11:12] <romiras> Generic там это что?
[15:11:36] <valexey > это один из промежуточных кодов
[15:11:55] <valexey > то есть одно из промежуточных представлений
[15:12:11] <valexey > про семантику языка знает * to GENERIC
[15:12:21] <romiras> из чего он состоит? Не машкода ведь
[15:12:25] <valexey > а парсер делает только C trees и так далее
[15:12:37] <valexey > возможно из машкода виртуальной машины
[15:13:35] <valexey > или что-то другое.  какая разница? :-) может вообще внешне это xml - для пущей человекочитаемости :-)
[15:14:39] <romiras> то есть трёх-байтовая структура? 2 операнда и оператор?
[15:14:59] <valexey > ты про что? я мысль потерял
[15:15:36] <romiras> я про generic ещё
[15:16:04] <valexey > гм. а почему трехбайтная структура? сколь я помню, машкоды очень часто имеют переменную длину инструкций
[15:16:17] <romiras> не трёх-байтовая имел в виду
[15:16:59] <romiras> как выразиться
[15:17:26] <romiras> трёх-головая, чтоль :)
[15:17:41] <valexey > я хз в каком виде оно у них там. возможно там в результате тупо синтаксическое дерево сей например :-) как подмножества всех языков
[15:17:50] <romiras> a, b, +
[15:18:44] <valexey > a, b, c, <
[15:18:45] <valexey > :-)
[15:19:39] <romiras> результат?
[15:20:24] <valexey > true/false
[15:20:55] <romiras> зачем ещё один операнд - не для результата?
[15:21:50] <valexey > ну, как же: a<b<c :-)
[15:22:08] <valexey > результат будет скажем на стеке
[15:22:36] <valexey > или просто в памяти по адресу 0xdeadbeaf
[15:23:02] <romiras> но они же последовательно обрабатываются в выражении, а не скопом
[15:23:30] <valexey > а это уже зависит от железяки :-) могут и параллельно - почему нет?
[15:25:00] <romiras> если знаешь - объясни, чего вокруг да около ходишь?
[15:26:57] <valexey > я просто не очень понял вопрос. какой формат там GENERIC' а я там точно не знаю. это может быть синтаксическое дерево промежуточного языка (достаточно высокоуровневого, одинаково родственного всем трем начальным языкам), это может быть достаточно низкоуровневый машкод виртуальной машины (см llvm), это может быть что-то еще, какая-то хитрая структура данных, не дерево, возможно граф, на котором потом удобно оптимизироваться
[15:27:29] <valexey > причем если в эту схему воткнуть четвертый язык (скажем пролог), то вполне вероятно она развалится. просто потому, что новый язык не впишется в эту схему
[15:29:22] <romiras> "Instead of generating RTL, every Front End is responsible for converting its own parse trees into GENERIC trees. Since GENERIC trees are language-independent, all the semantics of the input language must be explicitly described by each Front End."
[15:31:22] <valexey > значит угадал - AST для промежуточного языка одинаково родственного всем входным языкам
[15:32:03] <valexey > по сути фронтенд сам по себе уже компилятор с кодогенератором
[15:32:17] <valexey > просто кодогенерирует он не в конечноцелевую архитектуру
[15:33:14] <romiras> короче, надо позже почитать в чём дело. А то не успею работу сделать
[15:33:30] <valexey > угу
[15:34:08] <valexey > /me ща будет пытаться подружить js, go и андроид
[18:36:06] <kemiisto> .
[18:37:04] <kemiisto> Всех дураков - с прошедшим! :D
[20:28:48] <TRUE> кто-нибудь знает русскоязычные ресурсы, посвящённые проектированию высоконагруженных серверов?
[20:29:08] <TRUE> жестоко
[20:34:58] <valexey > прям ресурсы не знаю, а вот конференции знаю. например вот: http://www.highload.ru/
[20:35:01] <valexey > то есть встречи ежегодные
[23:37:54] <vlad2> По поводу ссфлки "не использовать LLVM". Там же обычная критика. У любого инструмента будет (не огороженного ;)
[23:38:22] <vlad2> Кроме того, там критика именно с позиции "виртульаной машины".
[23:39:02] <vlad2> К LLVM как "бакенду" претензий нет, даже наоборот - там все лучше, чем в каком-нибудь gcc.
[23:40:45] <ilovb> Интересная статья на хабре: http://habrahabr.ru/post/141236/
[23:40:53] <vlad2> Когда компилятор оберона дорастет до состояния, когда ему будет "тесен" LLVM как бакенд - это будет компилятор на порядок круче какого-нибудь ББ в состоянии на сейчас ;)
[23:41:17] <ilovb> извиняюсь за офтоп
[23:42:52] <madzi@jabber.ru> А что, разве у ББ крутая кодогенерация ? Я думал что ББ не этим хорош...
[23:45:01] <vlad2> Дык, я и говорю - что никакая. И LLVM будет заведомо лучше, потому что кодогенерации/оптимизации там уделяется внимание.
[23:47:55] <valexey > vlad2: а что за ссыль про критику llvm?
[23:48:08] <vlad2> Пролетала от romiras
[23:49:00] <madzi@jabber.ru> но выделяя оберон из среды получаем нечто вроде си, никому не нужное. у него нет большого числа фреймворков, мало кому известный/интересный синтаксис и теряем вкусности от единения языка с окружающей средой...
[23:50:53] <valexey > нашел ссыль
[23:51:38] <valexey > madzi@jabber.ru: да синтаксис у него как раз вполне обычный. не в синтаксисе дело :-)
[23:52:38] <valexey > но вообще да, как язык КП или там Оберон ценность довольно малую представляет
[23:52:51] <vlad2> Единение со средой не всегда то, что нужно. Иногда, например, нужно встроить в другоую среду. См. чвязку жабаскрипт и браузер.
[23:53:00] <valexey > с другой стороны, каким образом llvm противоречит построению среды оберонистой?
[23:53:25] <valexey > vlad2: но этой связке llvm как раз не поспособствует
[23:53:38] <valexey > вроде он не умеет кодогенерировать в js
[23:54:08] <vlad2> Почему не способствует, если сам llvm легко встраивается куда угодно?
[23:55:26] <valexey > эм… не понял. как и куда ты собираешься встроить llvm если целевой архитектурой является браузер?
[23:56:33] <vlad2> Ну в смысле - в тот же браузер.
[23:57:00] <madzi@jabber.ru> постойте. есть же транслятор оберона в js
[23:57:12] <madzi@jabber.ru> и потом, зачем в браузере оберон ?
[23:57:22] <valexey > madzi@jabber.ru: гыде?
[23:57:27] <valexey > транслятор
[23:57:39] <valexey > madzi@jabber.ru: а ты пробовал что-нибудь на js написать?
[23:57:47] <madzi@jabber.ru> в смысле где ?
[23:58:04] <madzi@jabber.ru> на обероне для js или на чистом js ?
[23:58:09] <valexey > vlad2: не-е. это не спортивно. лично я до гугла пока не дорос, чтобы что-то в браузер встраивать
[23:58:17] <valexey > madzi@jabber.ru: на чистом js
[23:58:29] <valexey > и где ты нашел вменяемый транслятор с оберона в js?
[23:58:32] <madzi@jabber.ru> пишу, и что ?
[23:58:33] <vlad2> Я для примера ;)
[23:59:02] <vlad2> madzi: если ты про Oberon Script - то уже обсуждали.
[23:59:24] <vlad2> Если кратко - это студенческая поделка, имеющая отношение к синтаксису оберна.
[23:59:25] <valexey > вон и влад пишет. и по поводу написания чего-то на js регулярно картинки интересные постит
[23:59:32] <vlad2> Ни для чего реального ее использовать нельзя.
[23:59:42] <valexey > и, в принципе, я с ним согласен (после того как сам начал писать на ЭТОМ)