[00:36:44] <vlad2> Кстати еще раз о процедурных типах :)
[00:36:58] <vlad2> TYPE Proc1 = PROCEDURE(): Proc1;
[00:37:04] <vlad2> TYPE Proc2 = PROCEDURE(): Proc2;
[00:37:16] <vlad2> Вопрос:
[00:37:44] <vlad2> являются ли приводимыми данные типы
[00:38:55] <vlad2> Если определить приводимость процедур как приводимость всех аргументов и типа результат - то уходим в бесконечную рекурчию :)
[00:40:31] <valexey_> по моему являются. у меня ощущение что там структурная типизация
[00:40:42] <valexey_> но для пущей надежности надо конечно курнуть спеку еще раз
[00:40:48] <vlad2> Если сказать, что не приводятся, потому что названия типов разные - то тогда вообще определение процедурного типа теряет практический смысл (можно будет объявлять такие переменные, но нельзя будет такой переменной приравнять конткретную процедуру).
[00:41:22] <vlad2> В спеке про процедурный тип вообще ничего (как ты сам правильно подметил)
[00:41:23] <valexey_> процедура - это по сути литерал процедурного типа.
[00:41:32] <valexey_> а у литералов типизация своя :-)
[00:42:20] <vlad2> Я представляю как это в любом случае разурулить, прочто интересно "что же на самом деле имел ввиду Вирт"
[00:43:19] <valexey_> прям как на уроке литературы: "что хотел сказать автор?"
[00:43:38] <vlad2> Или вот еще из той же оперы:
[00:43:58] <vlad2> TYPE Proc1 = PROCEDURE(p: Proc1);
[00:45:19] <valexey_> TYPE p = POINTER TO p;
[00:45:22] <valexey_> :-D
[00:45:26] <vlad2> C точки зрения компиятора появляется некий логический признак у типа "self referenced type"
[00:45:40] <vlad2> Браво!
[00:46:15] <vlad2> Но не получится - не бывает поинтеров на поинтеры а О7 :)
[00:46:35] <valexey_> Только на структурные типы, да?
[00:46:41] <vlad2> Угу.
[00:47:13] <vlad2> Соответсвенно при определении соответсвия типов этот флажок "self referenced type" рассматривается как спец. случай.
[00:47:27] <vlad2> (Чобы рубить рекурсию)
[00:47:28] <valexey_> Ну, очевидно что вот такое должно быть можно: TYPE r = RECORD p : POINTER TO r; END;
[00:47:40] <vlad2> Да, такое можно.
[00:47:45] <vlad2> Но Вирт схитрилю.
[00:47:56] <vlad2> Он не пишет, что можно такое рекурсивное определение.
[00:48:08] <vlad2> Он пишет, что POINTER можно объявлять на неоюъявленный тип.
[00:48:47] <vlad2> Т.е. исходя из такой предпосылки можно предположить, что Вирт _против_ возможности рекурсивных определний типов в общем случае.
[00:48:51] <valexey_> коварен!
[00:49:25] <valexey_> эмм... я не понял. что, вот так прокатит: TYPE p = POINTER TO FooBar;
[00:49:33] <valexey_> Где FooBar - ваще не известный символ
[00:49:58] <vlad2> Да, прокатит.
[00:50:14] <vlad2> Но там требование, что таки FooBar должен быть определен до конца скопа
[00:50:26] <vlad2> И это должен быть рекорд.
[00:50:53] <valexey_> Погоди, а массив разве не структурный тип?
[00:51:25] <vlad2> Структурный.
[00:51:33] <vlad2> Так же как и процедура :)
[00:51:44] <valexey_> Значит на них указатель можно?
[00:51:53] <vlad2> Ой. Не помню уже :)
[00:52:32] <valexey_> а, нет, нельзя
[00:52:43] <valexey_> там не структурный тип требуется, а конкретно record
[00:53:01] <valexey_> Вирт суров
[00:53:56] <vlad2> Угу. Беспощаден.
[00:54:29] <vlad2> Хотя, конечно, смысла в таких рекурсивных типах исчезающе мало.
[00:55:10] <vlad2> Кроме классического: "в си вы не можете определить функция, возвращающую саму себя".
[00:55:22] <valexey_> кстати, благодаря тому, что указатели могут быть только на рекорды, в Обероне-07 консервативный сборщик мусора работать будет много лучше чем в Go
[00:55:27] <vlad2> вопрос "зачем" остается открытм :)
[00:55:37] <vlad2> А.
[00:57:09] <valexey_> В Go указатель можно взять и сохранить например на любой элемент массива. Следовательно если у тебя большие массивы, то с очень большой вероятностью они не будут собраны сборщиком мусора никогда - какая-нибудь глобальная целочисленная переменная вполне может иметь значение равное адресу одного из элементов массива. И привет.
[00:57:31] <valexey_> Это конечно в первую очередь стреляет в 32битном режиме.
[00:57:37] <vlad2> Помнится info21 отказывался это апризнавать :)
[00:58:25] <valexey_> Ну, в Обероне такой проблемы почти нет - точнее вероятность сильно ниже. Ведь в случае Оберона нужно попасть конкретно в голову массива/рекорда (адрес первого байта), а не в любую часть тушки.
[01:00:01] <valexey_> То есть Вирт постарался сделать все возможное, чтобы наивная реализация языка работала более-менее прилично.
[01:00:08] <valexey_> А на прикладного программиста пофик :-)
[01:01:17] <valexey_> впрочем, для Go точный сборщик мусора пилится. Думаю через год-два выкатят релиз.
[01:03:10] <valexey_> Выкатили бы раньше, но для Go нельзя сделать сборщик мусора который не умеет собирать мусор в многопоточных программах.
[01:03:16] <valexey_> Ибо почти каждая там многопоточна
[01:25:43] <valexеy> Гг. У Олега самый попсовый ирковый клиент :-) mIRC
[01:42:31] <egp> ааа эклипс повис когда я сделал Paste 130 кб текста в 1 строке
[01:43:33] <egp> отвис но тормозит редактор хоть стреляйся
[01:45:41] <egp> gedit с этим текстом работает без малейших траблов
[01:49:39] <valexеy> gedit значительно тупее
[02:02:57] <egp> не факт. просто он отлажен на длинных строках
[02:03:33] <egp> то есть факт конечно
[02:06:16] <egp> но гедит отлажен на длинных строках, а эклипс написан не приходя в сознание и быстро
[02:08:41] <valexеy> у тебя 130 Кб текста - какого текста? это исходник?
[02:21:14] <egp> css минимизированный
[02:23:04] <egp> бедные браузеры =)
[02:32:46] <valexеy> что это?
[02:40:23] <egp> сикрет
[02:41:11] <egp> valexеy: из css вырезают лишний whitespace
[02:41:24] <valexеy> логично
[02:41:38] <egp> это называют минимизацией
[02:45:23] <valexеy> угу.
[02:45:32] <valexеy> и в одну строчку вытягивают
[02:54:24] <valexеy> .
[04:36:28] <valexеy> <tcpip> llong time ago in the collage where I was working Russian was the "must know" language for mathematicians
<tcpip> I was able to read papers and even new few spoken "special" words
<valexey> where it was?
<tcpip> in UNH
<valexey> University of New Hampshire?
<tcpip> yeap
<tcpip> then, later on, we had few professors from Russia and Ukraine
[04:39:04] <vlad2> Это к чему? :)
[04:42:06] <vlad2> Кстати, даже в нашей деревне встречаются чуваки, которые учат русский just for fun
[04:44:24] <valexеy> Это на обероновском канале
[04:44:29] <valexеy> С буржуями общаюсь
[04:46:38] <vlad2> F/
[04:46:40] <vlad2> А.
[04:47:46] <vlad2> Зови на форум ;)
[04:48:16] <valexеy> Я им уже статистику порекламировал :-)
[04:48:41] <vlad2> Можно завести отдельный буржуйский раздел, чтоб русского не пугались.
[04:49:18] <valexеy> И для гостей по умолчанию сделать английский интерфейс что-ли.
[04:49:23] <vlad2> Угу.
[04:49:24] <valexеy> <valexey> messages per year on russian oberon forums: http://oberspace.dyndns.org/stats/stats_total.png
<valexey> http://oberspace.dyndns.org/stats/oberon_total.png
<dsar> :O
<valexey> more than 12000 messages last year :-)
<valexey> (not all messages was oberon-specific, but all written by russian oberon community )
<tcpip> looks like in Russia something start recovering finally
<valexey> yep :-)
<tcpip> glad to see it
[04:49:33] <valexеy> Или детектировать язык в браузере.
[04:49:38] <valexеy> Это можно.
[04:52:39] <valexеy> vlad2: новый компилятора Оберона-07 ннада?
[04:52:41] <valexеy> https://github.com/nickelsworth/noct
[04:52:44] <valexеy> :-D
[04:52:52] <valexеy> свеженький!
[04:53:07] <vlad2> Вау. Поперли :)
[04:53:17] <vlad2> Вирт сделал действительно простой язык ;)
[04:53:25] <vlad2> для написания компиляторов :)
[04:54:29] <valexеy> там еще один на подходе, на самом деле :-)
[04:54:40] <vlad2> твой? :)
[04:54:42] <valexеy> хотели компиляторов для Оберона? НАТЕ!
[04:54:49] <valexеy> Нет, пока не мой. :-)
[04:55:17] <vlad2> Что интересно - там репорт от 2011
[04:56:29] <valexеy> :-)
[04:57:04] <vlad2> А вот с тестами там как-то слабо.
[04:57:23] <vlad2> Я вот все надеюсь, что нахаляву отхвачу чей-нибудь готовый наборчик тестов.
[04:57:53] <vlad2> Не юнит, а готовых исходников.
[04:59:06] <vlad2> А вот в моем компиляторе - нет AST :)
[04:59:29] <vlad2> Код генерится сразу, как сказал Вирт :)
[05:02:58] <valexеy> ога, сразу, взрослыми. пардон, это из дня радио :-)
[05:26:50] <valexеy> <valexey> tangentstorm, now there are several Oberon-07/11 compilers, I think that we need common test-set (set of oberon-sources) for all compilers.
<tangentstorm> makes sense to me
<tangentstorm> there's already one for oberon2 on sourceforge somewhere. maybe we could adapt that?
* tangentstorm is now known as tangentaway
<valexey> oo2c tests? I don't know. May be it is easy to make new from scratch. Oberon-07 have many small (and not small) diffs.
[05:26:56] <valexеy> vlad2: про тесты
[05:28:32] <vlad2> Угу. Да, один test suite очень помог бы убрать ненужные различия в имплементациях
[05:29:00] <vlad2> Хотя бы уровня компилится/некомпилится
[05:29:07] <valexеy> угу
[05:29:27] <valexеy> а то этот разброд и шатания среди оберонов поднадоел
[05:29:50] <valexеy> совместимость на уровне циклов дейкстры только
[05:30:49] <valexеy> Ну и хоть какую-то общую стандартную либу. Понятно что с контейнерами все плохо, но хоть там, не знаю, utf8-либу и т.д.
[05:43:50] <vlad2> По поводу либы будет трудно.
[05:44:09] <vlad2> Потому что хоть какая-то осмысленная либа с претензией на эффективность будет уходить в SYSTEM
[05:44:28] <vlad2> В смысле можно тестировать либу на уровне интерфейса.
[05:44:41] <vlad2> Но имплементация либы все равно будет у каждого своя.
[05:46:15] <valexеy> я подозреваю что с юникодной либой вполне можно обойтись кросскомпилерным способом
[05:46:35] <valexеy> ну и вполне эффективно. подозреваю, будет. то есть отличие не на порядки
[05:48:08] <valexеy> только времени на это нет. увы-с. надо въебом занимаццо.
[05:48:42] <valexеy> ня. заняться что-ли тестами на самом деле. это то, что не требует долгого обдумывания, и хорошо разбиается на множество мелких задачек.
[05:49:11] <valexеy> открыл спеку, и пошел тесты писать.
[06:06:47] <vlad2> Типа. Но скучно :)
[06:19:12] <egp> скучнее cssы разгребать
[06:47:46] <egp> (11:45:47) egp: лёгкие программы писать охота, а трудные неохота
(11:46:29) egp: лёгкие притом - это самые качественные, надёжные и быстрые
(11:46:36) egp: а трудные - это говно разное
[19:19:44] <Сергей Зорин> /
[19:23:33] <Сергей Зорин> version ilov_boris
[19:23:35] <Жаба> Сергей Зорин, ilov_boris have Psi+ 0.16.25 (2012-10-28)  on Windows 7