[01:30:49] <vlad2> Да, отсутствие линуксовой версии это реально позорище. На фоне пропагандируемых свойств оберон семейства.
[12:41:12] <valexey> Кстати, Astrobe (это среда разработки на Обероне-07 под ARM-микроконтроллеры (не путать с армами которые например в смартфонах стоят!)) и IDE и компилятор, написаны на .net
[12:41:21] <valexey> на каком там из языков .net'a - я не знаю.
[12:41:28] <valexey> но точно на .net ;-)
[15:22:13] <valexey> ААА!!! ЖЖесть!11
[15:22:16] <valexey> "Елы-палы. Оформляйте по-человечески. Чтобы сразу было ясно, о чем речь.

LOOP IF
...
END EXIT END END"
[15:22:51] <valexey> Вот это вот END EXIT END END — это по человечески, да ?
[15:40:34] <geniepro> говорю же -- синтаксический мусор должен умереть!!!111
[16:05:19] <geniepro> не знаю как вас, а меня задолбал уже этот интернет!
предлагаю разработать вместо него интерда!
[16:05:59] <valexey> ж-)
[16:06:07] <valexey> а чем тебя эта интерсеть задолбала?
[16:14:17] <geniepro> да всем уже вапще ((
[16:14:25] <valexey> ? o_O
[16:14:29] <geniepro> но это проблема больше местного характера
[16:14:31] <valexey> O_o?
[16:14:44] <geniepro> ну нет у нас, а не интернет )))
[16:14:59] <valexey> ну переходи на фидо
[16:15:06] <geniepro> я на днях обнаружил дома, что анонимайзеры и прокси-серверы не открываются
[16:15:32] <geniepro> на работе думал -- админы забанили -- походу ещё до них уже забанено
[16:15:51] <valexey> забанили на гос.  уровне
[16:15:57] <valexey> посмотрев на процессы которые идут у соседа
[16:16:48] <geniepro> возможно, но чо тогда твиттер и фейсбук доступны???
[16:17:06] <valexey> потому, что понятно кто куда лазит
[16:17:12] <valexey> СОРМ не дремлет ;-)
[16:17:16] <valexey> в том числе и наши решения
[16:17:24] <valexey> и в любой момент можно все отрубить
[16:17:35] <geniepro> не, у нас оно называется СНБ -- потомок КГБ
[16:17:35] <valexey> ну или отработать индивидуально
[16:17:41] <valexey> в общем, все под контролем
[16:17:47] <valexey> СОРМ это не КГБ
[16:17:55] <geniepro> а что это?
[16:17:55] <valexey> и не ФСО
[16:17:57] <valexey> и не ФСБ
[16:18:09] <valexey> http://ru.wikipedia.org/wiki/%D0%A1%D0%9E%D0%A0%D0%9C
[16:18:31] <valexey> считай что это набор технологий и законов
[16:18:49] <valexey> которым пользуеются уже всякие ФСБ, ФСО, КГБ и прочее
[17:52:54] <Дмитрий85> Здравствуйте
[17:53:00] <valexey> hi
[17:53:13] <Дмитрий85> Скажите защищен ли Оберон-0 какими нибуть правами?
[17:54:23] <valexey> стоп. Оберон-0 это хто такой?
[17:54:25] <valexey> Язык?
[17:54:32] <Дмитрий85> да
[17:54:35] <valexey> Все реализации принадлежат авторам оной реализации
[17:54:54] <valexey> Торговая марка Oberon тоже принадлежит цюриху вроде
[17:55:44] <Дмитрий85> Если я скажем возму за основу оберон-0 и что то свое сделаю и может еще имя поменяю, будет ли это нарушением ?
[17:56:05] <valexey> думаю что вероятность возникновения проблем близка у нулю
[17:56:21] <valexey> ну, то есть вероятность что завтра тебя убьет метеорит - больше
[17:57:12] <valexey> вообще, я не помню случаев когда судили бы за содержимое языка. за использование названия языка - да, судят и троллят. за реализацию библиотек и рантайма - тоже.
[17:57:23] <valexey> за суть языка (грамматику скажем, или семантику) - нет.
[17:57:43] <Дмитрий85> Понятно, спасибо
[17:57:57] <valexey> алсо по российскому законодательству точно тебе ничего не будет :-)
[17:58:23] <valexey> в самом крайнем невероятном случае могут возникнуть проблемы с коммерческой продажей продукта в США или европе
[17:59:11] <valexey> Дмитрий85:  а что, есть идеи как можно что-то из Оберона-0 получить вменяемое?
[17:59:21] <valexey> какова область применения планируется? ;-)
[18:03:14] <Дмитрий85> я взял сканер от него, и парсер делаю с нуля, повторяя по немногу за парсером оберона-0, ориентируюсь на генерацию ассемблерного кода для Nasm
[18:04:04] <valexey> э? парсерь ведь не генерирует код.  код генерирует кодогенератор
[18:04:12] <valexey> а парсер лишь распознает грамматику
[18:04:27] <valexey> (сканер распознает лексемы, сколь я помню - лексер)
[18:08:06] <Дмитрий85> да, там сложно все сразу понять, поэтому я сначало сделал чтение списка переменных VAR, потом присваиваение, некоторые арифметические и логические операции и т.д. Сейчас он понимает три типа BOOLEAN, INTEGER, CHAR, ARRAY OF, блок IF..ELSIF...ELSE..END, WHILE ... END, и несколько встроенных функций WriteInt, WriteLn, WriteCh....
[18:08:20] <Дмитрий85> пока как бы подмножество оберон-0
[18:09:03] <valexey> а кодогенерение уже какое-то есть?
[18:09:19] <valexey> выходной язык какой планируется?
[18:10:05] <Дмитрий85> да, там вручную просто в виде строк выводится нужные ассемблерные команды
[18:10:54] <valexey> ну это не важно. важно какой там асм :-) x86?
[18:11:05] <valexey> то есть какой instruction set?
[18:11:31] <Дмитрий85> я надеюсь сделать что типа оберон-1/2 и потом использовать этот инструмент для написания простенькой консолькой операционной системы, к нему еще файловый менеджер что бы дальше вести разработку "изнутри"
[18:11:43] <Дмитрий85> i386
[18:12:56] <valexey> если i386.. то простенькая операционка будет в каком режиме работать? защищенном или реальном?
[18:13:36] <valexey> (а что такое "консольная" операционка я не знаю :-) интерфейс пользователя не зависит от ОС внизу лежащей ;-) )
[18:14:32] <Дмитрий85> конечно, защищенном. я уже пробовал писать ядро, дошел до переключения в защищенный режим и там понял, что лучше бы писать на языке высокого уровня, но подходящих реализаций оберона-2 не нашел, вот пробую сам писать
[18:14:55] <Дмитрий85> как в досе т.е.
[18:15:00] <valexey> ну, написание транслятора штука полезная конечно.
[18:15:00] <Дмитрий85> текстовая консоль
[18:15:03] <valexey> эм. стоп
[18:15:07] <valexey> дос это не защищенный режим
[18:15:09] <valexey> это реальный
[18:15:35] <Дмитрий85> да, я имел ввиду как в досе будет консоль, а не гуи
[18:16:42] <valexey> ну, почему же, в досе и GUI было
[18:16:53] <Дмитрий85> небыло
[18:16:57] <valexey> например Win 3.1 - яркий пример GUI
[18:17:08] <valexey> вообще там куча разных гуев было
[18:17:14] <valexey> на любой вкус
[18:17:15] <valexey> и цвет
[18:17:15] <Дмитрий85> ну да, это отдельная программа
[18:17:29] <valexey> дык command.com - это тоже отдельная программа :-D
[18:18:02] <valexey> так что там вообще (если без программ) UI не было. ни консольного, ни гуевого. никакого
[18:18:05] <Дмитрий85> вообще да, дос и без него мог работать :)
[18:19:29] <valexey> так что думая о ОС не думай о UI - это потом напишется :-) вообще для отладочных целей один UI, для пользования другой. это нормально
[18:19:47] <valexey> алсо частенько для отладочных целей UI работает через rs-232 :-)
[18:20:51] <Дмитрий85> слышал про такое, но сам не пробовал
[18:21:47] <valexey> это стандартно. когда у ОСи проблемы, она обычно дампит вывод на rs-232. только у современных компов часто нет rs-232… впрочем, у промышленных (в том числе у ВСЕХ серверов) он есть
[18:25:59] <valexey> Дмитрий85: а вообще не страшно в x86 лезть? там же море инструкций. Меня лично спека на instruction set от интеля сильно демотивировал…
[18:27:39] <Дмитрий85> valexey: я просто вставки из строк делаю
[18:28:06] <valexey> это без разницы
[18:28:30] <valexey> какая разница ты сгенерируешь "MOV" или численный её код? на логику это не влияет никак
[18:28:41] <Дмитрий85> например, загрузка в регистр константы
WTab; WStr("mov"); WTab; WReg(r); WStr(", "); WInt(x.val); WLn;

[18:29:18] <Дмитрий85> большая разница, строками проще и делать и дебагить и при необходимости скажем сделать 64 битную реализацию
[18:30:51] <valexey> с точки зрения кодогенерации - одно и то же. один фиг для успешной кодогенерации нужно тот несколькотысячестраничный мануал от интеля зачесть
[18:32:49] <Дмитрий85> я думаю кодогенератор меньше будет по размеру, с ним проще работать и т.д.
язык ассемблера я понимаю, примерно представляю как ту или иную конструкцию на обероне должна отражаться на ассемблере
[18:33:21] <Дмитрий85> и производит он читабельный код
[18:34:22] <valexey> думаю будет примерно то же. впрочем, я бы нагородил бы, как в подобных случаях водится, абстракцию.
[18:35:25] <valexey> то есть из нужного места не писал бы: WTab; WStr("mov"); WTab; WReg(r); WStr(", "); WInt(x.val); WLn;, а писал бы нечто вроде: generator.generateMov(r, x.val)
[18:35:56] <valexey> а вот уже generator может как генерить машкод, так и быть pretty printer'ом для асма
[18:36:29] <valexey> то есть два генератора по сути, два класса, реализующих общий интерфейс
[18:37:38] <Дмитрий85> может потом и сделаю так, когда/если большая часть компилятора будет написана
[18:37:50] <valexey> либо вообще generator это некая хрень-прослойка которая для данного события (вызова generateMov()) дергает всех заинтересованных (подписавшихся на это событие) личностей, в том числе генератора машкода (если он присутствует, зарегался) и преттипринтера (который пишет человеконяшный код.
[18:38:13] <valexey> а может быть еще и кто-то третий, который радостно картинку рисует в процессе :-)
[18:38:35] <Дмитрий85> :)
[18:39:26] <valexey> или там который статистику по сгенеренному коду считает
[18:41:16] <valexey> /me похоже расковырял компилятор из Astrobe
[18:41:25] <valexey> точнее - почти что его оттуда выковырил
[18:42:58] <valexey> походу все писано на шарпе
[18:43:22] <valexey> причем работает (пока) под вендой только. под linux/mono не работает
[18:43:50] <Дмитрий85> проще наверное оберон для avr (исходники которого доступны) переделать обратно на арм
[18:45:12] <valexey> ой, а где такая прелесть?
[18:45:51] <Дмитрий85> на форум оберонкоре была ссылка
[18:45:54] <valexey> но вообще, там масса нюансов с этим армом. это ж не просто арм который в смартфонах например. это микроконтроллер. там и адресация другая
[18:48:34] <valexey> ага. нашел. правна не на оберонкоре
[18:48:41] <valexey> http://a2os.org.ua/forums/topic.php?forum=17&topic=10
[18:48:52] <valexey> http://www.ocp.inf.ethz.ch/forum/index.php?topic=187.0
[18:49:04] <valexey> на оберонкоре не нашел ничего.
[18:49:04] <Дмитрий85> http://a2os.org.ua/forums/topic.php?forum=17&topic=9&p=1
http://www.ocp.inf.ethz.ch/forum/index.php?topic=187.0
[18:49:19] <Дмитрий85> http://svn.assembla.com/svn/oberonru/
[18:50:06] <valexey> В:Почему "0" в конце имени?
О: Потому, что за основу был взят компилятор с языка Oberon0. Ядумаю, что модули конечно нужно переименовать. Вообще поленились даже в коментах убрать ссылки на ARM процессор, что вводит в заблуждение.
[18:50:11] <valexey> гы
[18:50:21] <valexey> по моему, это весьма хоженая тропинка :-)
[18:50:32] <valexey> начинать с Oberon-0 :-)
[18:50:35] <Дмитрий85> :)
[18:51:23] <Дмитрий85> ну так переделывать OP2 или Pow!32 почти не возможно, я пробовал но там под 800 кб исходников
[18:52:04] <valexey> угу. я тоже туда смотрел. стало плохо
[18:52:14] <valexey> писано ужасным стилем. поубивал бы
[18:52:32] <Дмитрий85> а вот оберон для авр где то 250 кб, из них 110 только кодогенератор
[18:52:42] <valexey> что характерно, из ББшного компилятора тоже никто не пытается сделать что-то свое.
[18:52:54] <Дмитрий85> но лучше пройти пусть оберона-0 :)
[18:53:21] <Дмитрий85> они хороши что бы там искать идеи для своей реализации
[18:53:24] <valexey> угу. но ты учти, что кодогенератор для AVR МНОГО проще, чем для x86
[18:55:05] <valexey> ня. извращенци. опять в каком-то не текстовом виде исходники выложили
[18:55:09] <Дмитрий85> если делать снуля компилятор, то проще его откатывать на х86
[18:56:48] <valexey> ну, не знаю-не знаю. эмуляторы целевых платформ на что дадены?
[18:57:00] <valexey> в них можно в любой момент состояние всех регистров посмотреть например
[18:57:17] <valexey> вообще всю внутреннюю кухню процессора
[18:57:51] <Дмитрий85> под виндой тоже можно хоть через дельфи смотреть
[18:58:33] <valexey> как ты через делфи будешь смотреть что там делает тобой сгенереный код и какое там состояние процессора? ;-)
[18:59:53] <Дмитрий85> там есть отладка, вообще когда дельфи ставится при первой загрузки он предлагает выбрать его само в качетве программы отладки, видели наверное, когда программа в виндовсе ломается запускается дельфи :)
[19:01:18] <valexey> а для этого тебе придется заморочиться еще и с форматом PE :-) чтобы тобой нагенереный код запускался под виндою
[19:01:35] <valexey> ну, либо с форматом объектников чтобы твой код понимал какой-нибудь компоновщик для виндузов
[19:01:56] <valexey> а, ну да, еще и с либами стандартными виндовозными (процедурой старта приложения) нужно разобраться будет.
[19:02:27] <valexey> и адресацией (виндовозной)
[19:02:33] <valexey> в случае написания своей оси, не слишком понятно зачем все это :-)
[19:02:47] <Дмитрий85> я специально ориентируюсь на текстовый ассемблерный код, что бы не быть привязанным к какой либо среде
[19:03:59] <Дмитрий85> у меня сначало генерится исходник, потом я компилирую его Nasm'ом, полученный объектный файл линкую с другим где находится функции вывода строк, и получаю екзешник
[19:04:22] <valexey> да нет тут разницы текстовый он или не текстовый :-) они же взаимнооднозначны.  чтобы из нетекстового получить текстовый достаточно пройтись дизассемблером :-)
[19:05:30] <valexey> ну, можно конечно и обертку для запуска использовать. впочем, можно тогда и без nasm'a - сгенерил код. загрузил в виде массива в свою прогу, передал управление на начало этого массива. все.
[19:05:39] <valexey> ;-)
[19:08:07] <Дмитрий85> разница есть, если ты делаешь только PE то возникнут сложности с портированием скажем под линукс, можно конечно переделать кодогенератор что бы он понимал ELF формат, но у меня это будет делать ассемблер nasm
[19:08:53] <Дмитрий85> у насма есть свой формат объектный файлов, RDOFF2, он простеньки и я хочу его использовать
[19:08:57] <valexey> впрочем, я нашел преимущество у трансляции в x86 код - им проще потом хвастать и демонстрировать, ибо x86 железка есть у многих :-) ARM - железка есть у всех, но не в каждую такую железку легко засунуть свой произвольный код
[19:09:41] <valexey> Дмитрий85: а если делаешь не PE, а просто кусок сгенереного кода, а для отладки оного просто его грузишь в виде массивчика и передаешь управление на первый байт?
[19:09:57] <Дмитрий85> да, сделаешь для авр и развитие компилятора в одно время прекратится, а под х86 можно много ПО, компилятор будет живой
[19:10:54] <Дмитрий85> valexey: можно и так, но надо подстраивать кодогератор и потом он его применение сократиться сильно
[19:11:57] <valexey> мэй-би. в общем я не вижу явного преимущества какого-либо из методов. у всех плюсы и минусы. просто я бы добавил слой абстракции в кодогенерирующую часть компилятора (как об этом писал выше).
[19:13:25] <Дмитрий85> я подумываю сделать две версии, одна простая minor, вторая сложная maior, с абстрактным синтактическим деревом, разными кодогенераторами, оптимизацие возможно
[19:14:13] <valexey> ну, подобная абстракция должна быть и в minor-версии, ибо она делает код ПРОЩЕ. а вот оптимизации и AST - это уже в можорной, да
[19:14:38] <valexey> а на чем его пишешь, кстати? на/в BB?
[19:14:49] <Дмитрий85> Pow!32
[19:15:34] <valexey> вау! его кто-то использует таки!
[19:15:53] <valexey> а что там нонче со сборщиком мусора, кстати? а то там были проблемы лет пять назад.
[19:18:10] <Дмитрий85> в Pow ? незнаю, я только заметил что вычисления вещественных чисел не совсем точная, и бывает еще глюки когда почему то программа ломается на определенной строчки кода, но если перед ней что нибуть вставить не нужно то начинает работать :)
[19:19:12] <valexey> ну, вещественные числа как бы в принципе не точные :-)
[19:19:23] <valexey> это ведь плавающая точка
[19:21:34] <Дмитрий85> там или в сканере проблема или в ртл где то настраивается режим работы блока FPU, возможно выбирать точные, но медленные вычисления, или наоборот
[19:22:42] <valexey> вот оно! x86!
[19:22:43] <valexey> :-)
[19:23:30] <Дмитрий85> это нормально, в SSE инструкциях кажется тоже имеется возможность вычислять корень сначало с пониженной точность, а потом кому надо с повышенной...
[19:25:48] <Дмитрий85> например делаешь 3д софтверный рендер, там бы больше скорости выжать, а точность там ничего не изменит в качестве картинки, но замедлит точно
[19:31:43] <valexey> Дмитрий85: для этого обычно все вычисления делаются не через SSE а на GPU
[19:32:45] <Дмитрий85> это сейчас, а во времена доса не было ГПУ :)
[19:32:50] <valexey> но вообще, да. в x86 современном есть туева хуча вариантов как считать плавающую точку. Кстати, а в обероне есть аналог double? В каком-то точно есть. Но может в каком-то и нет ;-)
[19:33:03] <valexey> А во времена доса и SSE не было, и даже MMX :-)
[19:33:15] <valexey> И сопроцессор далеко не всегда был доступен
[19:33:22] <valexey> скажем на 386
[19:33:28] <valexey> или на 486SX
[19:35:17] <Дмитрий85> к примеру игрушки дум, квейк, дюке нукем, использовали только сопроцессор, при этом успевали обрабатывать столкновение игрока с картой, проигрывать звук, обрабатывать сеть и т.п.
[19:36:22] <valexey> дум по моему сопроцессор не использовал
[19:36:33] <valexey> там была целочисленка по моеме
[19:36:41] <valexey> *по моему
[19:37:01] <valexey> но дум он и не 3Д :-)
[19:37:41] <Дмитрий85> не помню, но кажется в отрисовки использовались вещественные числа
[19:37:45] <valexey> а вот перваквака у меня не запустилась, возмутившись на отсутствие сопроцессора :-)
[19:38:24] <Дмитрий85> а всякие кординаты в картах уровней там действительно только целочисленные числа использовалисьэ
[19:38:28] <Дмитрий85> да
[19:38:30] <valexey> вульф3д вообще на 286х шел. а принцип отрисовки там был тот же что и в думах
[19:38:43] <valexey> а в 286 никаких сопроцов не было
[19:40:33] <valexey> гм. а вот интересно, можно ли на MSP430 скажем вульф написать? наверно можно. разве что в размер ОЗУ упереться можно очень быстро
[19:42:14] <Дмитрий85> я с контролерами только в институре сталкивался, на авр програмки писали
[19:43:21] <valexey> то что сейчас контроллер, то вчера супермощный десктоп :-)
[19:53:34] <Дмитрий85> есть еще идея сделать вирт.машину на подобии риск машины в оберон-0, сделать кодогенератор для него, что бы можно было всезде где есть итерпретатор выполнить на нем свою программу
[19:58:28] <valexey> Дмитрий85: тогда уж сразу не особо парясь пиши (кодогенерируй и вирт. машину тоже для него) в код Кроноса :-)
[19:58:36] <valexey> благо оно все задокументировано
[19:59:22] <valexey> ну и виртуальная машина уже есть :-)
[19:59:24] <valexey> http://kronos.ru/index
[20:00:11] <Дмитрий85> я его смотрел немного, документацию не изучал, жаль что этот проект отстановился..
[20:02:07] <valexey> ну, оно было экономически не оправдано. то есть стоимость/качество там было ниже чем у конкурентов. насколько я вижу.
[20:02:20] <valexey> доки изучал. забавная зверушка для изучения
[20:02:35] <valexey> для изучения осестроительства
[20:02:51] <valexey> в какчестве цели можешь взять сделать клон Эксельсиора для x86 :-)
[20:04:30] <Дмитрий85> хдс компилятор?
[20:05:30] <Дмитрий85> я не насколько профессиональный программист что бы такой проект осилить, пока я на любительском уровне изучаю насколько вообще реально самим или с кем то написать компиль и ось
[20:05:39] <valexey> кронос это: железка (семейство процессоров) Кронос, юникс-подобная операционная система Эксельсиор, компилятор для Модулы-2 (и не только) из которого потом вырос XDS
[20:06:07] <valexey> все это неплохо документировано (особенно ось и система команд) и весьма немного по размеру
[20:06:14] <valexey> (это вам не линух!)
[20:06:51] <Дмитрий85> там можно какой то софт взять, вроде кады какие то есть, архитектура процессора изучать, но делать (с учетом этого) что нибуть новое
[20:07:55] <valexey> угу
[20:19:03] <Дмитрий85> ладно, пока всем, пойду скоро спать :)
[21:17:41] <kemiisto> http://willus.com/ccomp_benchmark2.shtml?p1
[21:17:45] <kemiisto> .
[21:18:06] <kemiisto> Measure your dick, Man! :D
[21:21:22] <valexey> а где там clang?
[21:48:02] <valexey> ковыряюсь в instruction set'e для MSP430 - там число тактов на команду зависит от типа адресации и от всяких режимов, а от самое команды зависит в последнюю очередь :-)
[21:48:16] <valexey> вообще одна инструкция это очень-очень редко один такт процессора
[21:48:54] <valexey> забавно наверно оптимизаторы кода писать - похоже на задачу о рюкзаке получается :-)
[22:15:42] <valexey> а поскольку рюкзак штука NP-полная, то небось для оптимизаций используют какие-нибудь эвристики да стохастические алгоритмы
[23:56:57] <valexey> гм. ББшники переизобретают html с гиперссылками? http://forum.oberoncore.ru/viewtopic.php?f=24&t=1902&start=20#p69687