[00:51:41] <geniepro> http://www.adme.ru/vdohnovenie/30-kotov-postigshih-iskusstvo-son-fu-663255/
[12:15:56] <geniepro> о, надо же, у нас наконец-то снег пошёл
падает на асфальт и тает -- температура-то выше нуля...
[14:21:57] <Kemet> снег это хорошо, что за новый год без снега
[14:22:26] <alexey.veselovsky> обычный новый год в Сан-Франциско :-)
[14:24:06] <sda> https://pp.vk.me/c624021/v624021404/113ea/wwIaYNx7yZM.jpg
[14:24:26] <alexey.veselovsky> Ыыыы!
[14:24:58] <Kemet> хе хе freepascal.ru/forum/viewtopic.php?t=10076&view=unread#unread
[14:26:27] <alexey.veselovsky> указатель он и есть указатель
[14:26:48] <alexey.veselovsky> но конечно подобные сложные типы вшитые в язык - это зло
[14:27:42] <sda> опасная фигня, сам на такое нарывался...
[14:27:56] <alexey.veselovsky> угу, в С++ такого нет!
[14:28:08] <Kemet> alexey.veselovsky: вот я и говорю ненормальный это нг, а вот где нить под нижним новгородом это совсем другое дело
[14:28:27] <alexey.veselovsky> да, тут снега навалило МНОГО
[14:28:53] <alexey.veselovsky> впрочем, это сейчас все потечет
[14:31:48] <Kemet> в абироне такого тоже нет
[14:32:08] <alexey.veselovsky> ну, в айбироне вообще ничего нет :-)
[14:33:15] <Kemet> в абироне есть фс ё и даже больше !
[14:33:29] <alexey.veselovsky> неА, нету, нинужен!
[14:34:28] <Kemet> как нету? даже скобочуи есть!
[14:34:42] <alexey.veselovsky> а шаблонов нету!
[14:34:44] <alexey.veselovsky> :-)
[14:34:58] <alexey.veselovsky> прикладной программист в итоге ничего не может в нем
[14:37:21] <geniepro> Kemet> снег это хорошо, что за новый год без снега
так если бы он перед НГ выпал бы, а так он выпал после -- какой от него смысл? ))
[14:38:04] <Kemet> шаблоны нинужны! они засирают моск и не дают ему рабо ать, а руки становятся хиленькими - шаблоны приводят к атрофии моска и мышц рук же !
[14:39:36] <Kemet> geniepro: Ну выпал же )
[14:40:36] <Kemet> Иххх, компа с собой нема ¢¢
[14:45:13] <alexey.veselovsky> metacore: а с чего пишешь? андроид?
[14:51:10] <alexey.veselovsky> “Я раньше думал, играя в первый Half-Life, что это за скучные скрипты — стоят учёные в белых халатах вокруг какой-нибудь непонятной хрени и чешут головы. Оказалось, эти скрипты брались из жизни лабораторий.
Здесь также стоят и чешут репы над непонятной хренью.”
[14:51:32] <Kemet> bada
[14:51:47] <alexey.veselovsky> о-о! а на ней смарты еще выпускают?
[14:51:57] <alexey.veselovsky> version
[14:51:58] <тихий бот> version
[14:51:58] <Жаба> alexey.veselovsky,  you have imagent 10.0 (v1000) on Mac OS X
[14:52:02] <alexey.veselovsky> version metacore
[14:52:20] <alexey.veselovsky> version Kemet
[14:52:22] <Жаба> alexey.veselovsky, Kemet have Talkonaut 5.70.92 on java2me
[14:52:37] <alexey.veselovsky> оу. это не нативный клиент, это j2me?
[14:52:55] <alexey.veselovsky> блин, даже на какой-то там байде есть клиент для джаббера, а на виндофоне - нет!
[14:52:58] <alexey.veselovsky> тьху!
[14:53:03] <alexey.veselovsky> говнищщщще!
[14:54:25] <Kemet> alexey.veselovsky: Выпускают но у меня древняя, клиент явовский но вроде в самсторе е  ь нативный я хз
[14:55:09] <alexey.veselovsky> блин, виндофон еще более экзотика безсофта чем даже чиста гнусмасовская байда! ужс!
[14:55:14] <alexey.veselovsky> /me ощущает себя маргиналом
[14:55:53] <Kemet> alexey.veselovsky: искаропки в этой баде жабера нету
[14:56:15] <alexey.veselovsky> ну ясное дело что искаропки нету, но в виндофоне и не из каропки тоже нету
[14:57:05] <alexey.veselovsky> — Гибралтар, это же гора. Названа в честь араба, который Испанию открыл.
— Открыл?!
— Ну… открыл, завоевал, это прямой перевод с арабского. Есть даже книга такая, «История арабских открытий». Когда и кого открывали. Как Кортес Америку.

[14:59:46] <geniepro> alexey.veselovsky ощущает себя маргиналом
нормально-нормально! вот мне на моём вендофоне нахрен нинужен никакой клиент жаббера!!!!!!!11111
[14:59:59] <alexey.veselovsky> у тебя на нем и интернета нет
[15:00:04] <alexey.veselovsky> нафига тебе вообще виндофон?
[15:00:10] <geniepro> есть же, когдя включаю ))
[15:00:20] <geniepro> пусть будет! )
[15:00:47] <alexey.veselovsky> но у виндофона есть один плюс конечно - там телеканал Дождь можно бесплатно смотреть сколько угодно
[15:00:55] <geniepro> я недавно в метро наконец-то ещё одного владельца виндофона увидел!! уж думал, что я единственный )))
[15:01:31] <geniepro> самсунгов дохрена, гейфонов чуть меньше...
[15:02:34] <geniepro> это означает, что вендофонами в основном владеют богатенькие буратины, ездящие на работу не на метро, а на своих машинах, или вообще не ездящие на работу )))
[15:02:47] <alexey.veselovsky> неа
[15:02:54] <alexey.veselovsky> виндофон как раз хорошо если с деньгами туго
[15:03:08] <alexey.veselovsky> но при этом хочется чтобы было быстро и комфортно
[15:03:14] <alexey.veselovsky> и не нужна гибкость
[15:03:51] <geniepro> ну, значит в узбекистане настолько высокое благосостояние населения, что бюджетные вендофоны никому нинужны тут )
[15:03:54] <alexey.veselovsky> мс держит низкие цена на свои люмии, и собственно даже в нижнем сегменте даже не мс-телефоны на виндофоне все равно не тормозят. так сделана ось и так требует мс
[15:04:13] <alexey.veselovsky> но функционал у виндофона довольно ущербный, да
[15:04:46] <alexey.veselovsky> андроид наверно функциональней всего (разве что за исключением ble)
[15:58:58] <kpmý> жаба
[15:59:00] <тихий бот> я за неё
[16:03:19] <kpmý> рокнролл мертв, а я еще нет
[16:03:25] <alexey.veselovsky> :-)
[16:03:30] <alexey.veselovsky> это временно
[16:03:39] <geniepro> пунк нон дед
[16:13:16] <alexey.veselovsky> мертвый анархист
[16:26:35] <alexey.veselovsky> http://lenta.ru/photo/2015/01/02/beardtrend/#15
[16:31:20] <alexey.veselovsky> “За тринадцать тысяч лет, минувших с конца последнего оледенения, в некоторых частях мира развились индустриальные общества, владеющие письменностью и металлическими орудиями труда, в других — бесписьменные аграрные общества, в-третьих — лишь общества охотников-собирателей, владеющих технологиями каменного века. Это сложившееся в истории глобальное неравенство до сих пор отбрасывает тень на современность — как минимум потому, что письменные общества с металлическими орудиями завоевали или истребили все остальные.”
[19:26:30] <sda> вчера делал передачу параметров в процедуру по значению, сегодня думаю над открытыми массивами... все таки не очень красиво иметь различающиеся открытые и динамеческие, есть варианты сделать один вместо двух?
[19:37:28] <sda> хотя скрытый параметр размера открытого массива нужен чтобы штатными средствами получать информацию о длинне массива... тогда не уйдешь к единой форме...
[19:39:58] <sda> если в открытый массив передать динамический, то он становится открытым, можно обрабатывать все его элементы, но нельзя менять размер массива...
[20:07:16] <alexey.veselovsky> изменение размера массива - суть зло
[20:15:14] <alexey.veselovsky> http://lleo.me/dnevnik/2008/03/04.html
[20:21:29] <Kemet> угу, поэтому ноют что вирт выпилил динмассивы
[20:21:51] <alexey.veselovsky> а где они у него были?
[20:22:34] <Kemet> в старом обероне вроде
[20:22:46] <alexey.veselovsky> там не было массивов у которых можно было МЕНЯТЬ длину
[20:22:58] <alexey.veselovsky> там можно было только задавать один раз размер неизвестный на этапе компиляции
[20:23:01] <alexey.veselovsky> все
[20:23:02] <тихий бот> только лишь те
[20:23:18] <alexey.veselovsky> то есть точный аналог auto foo = new int[N];
[20:24:03] <sda> да не, дин массивы нужны, просто он, открытый массив и фиксированный это разные сущности
[20:24:40] <alexey.veselovsky> нафига в язык пихать лишнюю сучность? язык должен иметь общие штуки позволяющие на базе них в либе реализовать все необходимое
[20:25:16] <Kemet> В задачах реального времени динмассивы даже вредны
[20:25:49] <alexey.veselovsky> смотря что динмасивом считать :-)
[20:26:01] <alexey.veselovsky> в реалтайме полезно иметь кастомный аллокатор
[20:26:01] <sda> alexey.veselovsky: а какая из трех сущностей не нужна? у них разные задачи
[20:26:59] <Kemet> Поэтому часьо осрв поддерживают только статическое распределение
[20:27:14] <sda> открытый массив это чтобы была возможность написать универсальную ф-цию подсчета сумма массива, напр.
[20:28:18] <Kemet> открытый массив в обероне это соглашение
[20:28:21] <alexey.veselovsky> а лучше иметь возможность написать универсальную функцию подсчета суммы элементов в любом контейнере даже в том, который еще не написан и будет написан не тобой
[20:30:43] <Kemet> в ао есть оператор sum для массивов
[20:30:51] <alexey.veselovsky> нинужен
[20:35:16] <Kemet> sda: Открытый массив это не тип, это соглашение о типе элементов
[20:36:54] <Kemet> alexey.veselovsky: Кто нинужен
[20:37:03] <alexey.veselovsky> sum для массивов
[20:38:05] <sda> Kemet: понятно что он может появиться только в заголовке процудуры, во всем остальном это просто массив элементов, размер которых отдельно на стеке лежит
[20:38:11] <Kemet> Да вполне удобен и в матлабе вроде есть
[20:38:39] <alexey.veselovsky> матлаб, как язык, то еще говно
[20:38:50] <alexey.veselovsky> сложно себе представить язык хуже матлаба
[20:39:12] <Kemet> sda: Размер на стеке не лежит
[20:40:41] <Kemet> alexey.veselovsky: Не юзал но в ао сделали по образу
[20:41:03] <sda> Kemet: я тут свой компиль снуля пишу, в основе оберон-0 лежал, с точки зрения внутренностей компиля это просто указатель на массив находящийся в стеке, а к нему дополнительно скрытый параметром число элементов
[20:42:11] <alexey.veselovsky> поубивал бы за образ и подобие
[20:42:19] <alexey.veselovsky> тем более что в матлабе по сути нет массивов
[20:48:15] <sda> т..е. передаем в открытый массив фиксированный, передаем указатель, потом количество известное во время компиляции, если это динамический массив, то ложим указатель, потом по указателю достаем количество элементов и его же ложим на стек, а если в открытый открытый же передаем, то просто копируем со стека в стек 8 байт... а дальше уже работаешь как с обычным фиксированным массивом, я так себе представляю работу..
[20:51:42] <alexey.veselovsky> нюансы реализации.. скучны
[20:52:12] <sda> так нигде не написано, приходится изучать исходники и самим додумывать )
[20:52:25] <alexey.veselovsky> дык у вирта в книжке написано же :-)
[20:52:33] <alexey.veselovsky> по крайней мере как он сделал
[20:52:34] <sda> в какой?
[20:52:39] <alexey.veselovsky> проект оберон
[20:52:46] <sda> там вроде не всё
[20:52:57] <alexey.veselovsky> в плане узнавания размеров - там все
[20:53:16] <alexey.veselovsky> причем полезно прочесть и как оно было сделано в старом, изначальном обероне, и как в новом
[20:53:57] <alexey.veselovsky> собственно в новом обероне он выпилил массивы с неизвестной длиной на этапе компиляции просто затем, чтобы массивы и записи совершенно одинаково обрабатывались в плане менеджера памяти и типов.
[20:54:20] <alexey.veselovsky> раньше для массивов там была отдельная ситуация и отдельный код их обрабатывал. другая структура была в рантайме
[20:55:07] <alexey.veselovsky> то есть это было сделано для красоты и упрощения системы (небольшого упрощения системы, очень небольшого). а не из за каких-то там великих идей.
[20:55:57] <alexey.veselovsky> а то читая только репорты оберона нифига не ясно почему из языка вирт ВНЕЗАПНО выпилил массивы с неизвестной длиной на этапе компиляции (но при этом длина и ранее всегда у массивов была фиксированная)
[20:56:22] <alexey.veselovsky> и почему собственно оставил понятие открытого массива, при всем при этом.
[21:07:37] <Kemet> Кстати а симбиан у кого сейчас
[21:07:53] <alexey.veselovsky> у некрофилов
[21:19:36] <Kemet> Й
[21:20:04] <alexey.veselovsky> У
[21:20:51] <Kemet> весельчак ))
[21:22:29] <alexey.veselovsky> :-)
[21:23:23] <Kemet> таки мы решили сделать для себя осрв на базе а2
[21:24:04] <alexey.veselovsky> 32 спартанцев? ;-)
[21:25:02] <Kemet> Ы?
[21:32:20] <sda> чет смотрю из рекурсии statseq не выходит, пославленную в конце процедуры строку выводит, а после вызова процедур нет... отключил оптимизацию кодогенерации у дельфи и все заработало... ох уж
[21:32:23] <sda> эти оптимизации..
[21:34:40] <sda> в системах требующих надежность оптимизацию должны всегда отключать?
[21:53:36] <alexey.veselovsky> нет
[21:53:38] <тихий бот> Нет, не нет...
[21:57:31] <Jordan> За, что дин массивы ругаете?
[21:57:43] <alexey.veselovsky> за нинужность
[21:58:13] <Jordan> Альтернатиа?
[21:58:33] <Jordan> Что в замен?
[21:58:57] <alexey.veselovsky> библиотечная сучность
[22:01:11] <Jordan> Это если язык, поддерживает реализацию даной сущности, через библиотеку, иначе печаль и уныние.
[22:01:29] <alexey.veselovsky> а иначе язык не нужен
[22:05:31] <Jordan> КП поддерживает через untagged pointer, сортировку универсальную написать можно.
[22:05:46] <Jordan> void* hjlbvsq
[22:05:52] <alexey.veselovsky> untagged это не КП
[22:06:01] <Jordan> хм
[22:06:15] <alexey.veselovsky> Это ББ
[22:26:03] <sda> ну с некоторыми костылями но открытые массивы заработали! надо будет рефакторинг делать, пример:

module test21
func writeln( var str : array 0 of char8 );
var k : int32;
k = 0;
while ord( str[k] ) # 0 do
writech( str[k] );
k = k + 1;
end;
writech( ' ' );
writeint( len( str ) );
end;

func main();
var msg : array 31 of char8;
var msg2: array 16 of char8;
msg = 'test string';
msg2= ' str2';
writeln( msg );
writeln( msg2 );
end;
end

000000FA: lda r1, r13 + 0  // вычисляем адрес массива
00000100: push r1 // кладем на стек
00000102: mov r1, 1F  // загружаем в регист длинну массива
00000108: push r1 // кладем на стек
0000010A: call 8  // вызываем ф-цию
00000110: sub r14, 8 // подчисщяем стек

00000116: lda r1, r13 + 1F  // второй массив также
0000011C: push r1
0000011E: mov r1, 10
00000124: push r1
00000126: call 8

D:\alpha_b>avm32_0.exe test21.bin
test string 31 str2 16
[22:26:48] <sda> *подчищяем
[22:35:34] <akastargazer> Какие могут быть открытые массивы в системах с ограниченными ресурсами (гигабайты по пальцам пересчитать)?
[22:36:04] <sda> они на стеке всего 8 байт занимают, для 32-х разрядной системы
[22:36:29] <sda> т.е. на стек ложится адрес массива + количество элементов вторым параметром
[22:37:15] <Jordan> sda Шилдт Г. Искусство программирования на C++. БХВ.2005, есть глава описание языка mini c++, короче там есть сорцы интерпритатора укороченного с++, думаю будет полезно почитать.
[22:37:37] <sda> по значению не должны никогда передаваться... просто в этом случае возникли бы проблемы с определением адреса следующего параметра в процедуре, поэтому всегда передается указатель
[22:38:29] <sda> Jordan: спасибо, поглядим
[22:40:58] <Jordan> akastargazer Лучше адын язык, для всех систем. Только при программировании таких систем ограничивать себя, использовать только статические массивы.
[22:41:54] <Jordan> akastargazer А вообще микроконтроллёры разные бывают, вот их уже на js кодят. На оберспэйсе тема была
[22:42:12] <Jordan> akastargazer Короче мир, сходит с ума!
[22:43:37] <Jordan> А вообще, программирование микроконтроллёров ещё то байтоложество! :-)
[22:43:45] <sda> покрайней мере в оберон для avr есть эти открытые массивы, в процедуре FPSection там такой код есть:
IF cl = OSAB.Var THEN (*value param*)
IF leaf THEN cl := OSAB.Reg END ;
IF tp.form >= OSAB.Array THEN OSAS.Mark("no structured val params allowed") END ;
ELSIF cl = OSAB.Par THEN (*var param*)
IF leaf THEN cl := OSAB.RegI END
...
IF (tp.form = OSAB.Array) & (tp.len < 0) OR (tp.form = OSAB.Record) THEN
parsize := 2*OSAG.WordSize  (*open array or record, needs second word for length or type tag*)
ELSIF cl = OSAB.Par THEN
parsize := 2
ELSE parsize := tp.size
END ;
[22:43:48] <akastargazer> адын язык не получается, потому что впихнуть все предметные области в одну нотацию тяжело
[22:48:55] <Jordan> sda если надо могу залить книгу с исходниками в одном архиве, скачивал вроде с руторга
[22:49:53] <sda> сейчас попробую скачать
[22:51:18] <Jordan> Я качал, сборник книг по с++, там где то 600 мегов. Отдельная раздача, должна быть.
[22:52:17] <sda> но у меня не интерпритатор, а обычный кодогенератор в простую регистровую виртуальную машину, впринципе нет проблем потом переделать на х86 например... но своей удобнее тестировать, простой вид инструкций кодируемых одной процедурой всего
[22:53:04] <Jordan> akastargazer Смысл в урезании, есть оберон 2. Универсальный язык. Банально не использовать, определённые возможности. Чем городить много языков.
[22:53:44] <sda> качается..
[22:53:51] <Jordan> ок
[22:54:28] <Jordan> Предметные области, паковать в библиотеки
[22:55:51] <Jordan> sda А на чём, твой компилятор написан?
[22:56:34] <sda> Jordan: на дельфи пишу
[22:59:06] <sda> но я не буду полностью копировать оберон, у меня например переменные, константы и типы не в секциях определяются, а в любом месте процедуры... для этого их пришлось переместить из процедуры declarations в StatSequence, будут и другие отличия...
[23:00:34] <Jordan> Как назавёшь?
[23:00:44] <Jordan> Плутон?
[23:01:13] <sda> пока название "альфа", скорее всего такое и останется