[00:34:36] <vlad2> valexey: там я уже говрил - не обязательно простыней. Там есть module resolver, который может резолвать бодули как угодно - хоть скачивать их. Тогда порядок компиляции перестанет парить.
[00:35:16] <vlad2> См. oc.js:
[00:35:18] <vlad2> function compileModule(stream, rtl, moduleResolver, handleErrors)
[00:36:04] <vlad2> И как это сейчас используется - см. в том же файле нижк.
[00:36:31] <vlad2> Т.е., он сейчас запоминает все скомпиленные модули и moduleResolver просто лукапит их в спсике уже скомпилированных.
[00:37:37] <vlad2> А что пиктограмки означают на гитхабе?
[00:42:58] <vlad2> По поводлу конкретно странички: простое расширение я себе представляю в виде кнопки "сохранить" - она добавляет текущий модули в список модулей. Список модулей отображается тут же на страничке. Тыкаешь на модуль - он загружается в редактор. Ну а хранится это все локально (web storage или как там его).
[00:43:40] <vlad2> Все модули можно экспортнуть в файл и этот же файл потом импортнуть.
[00:43:54] <valexey> было бы прикольно, да.
[00:44:15] <vlad2> Надо мадзи привлечь ;) Он рубит в вебе :)
[00:44:48] <valexey> ога.
[00:44:58] <valexey> О! Довид Эванс ответил
[00:45:01] <valexey> Thank you for the note. I'll add it once I've had a chance to test it.

You mentioned W8 support. What about W7? Also, with Ubuntu, I'll test on Red Hat, maybe, SUSE, and see if I can make it work there.

Thank you.
[00:45:34] <vlad2> Круто! А мне Вирт так и не ответил.
[00:46:52] <valexey> Вирт уже старенький, может ему не до того. Либо просто емыл протух.
[00:47:06] <vlad2> Угу.
[00:51:49] <valexey> vlad2: оцени текст (пока не отправил): We supports the same platform set as modern js (IE8 or greater, chrome, firefox, node.js and so on. Win8 has js "native" API for Metro application, so it is possible to write this applications on Oberon). As I know, Win7 has't API for js, but I could be wrong.
[00:53:10] <vlad2> support
[00:53:20] <vlad2> (без s)
[00:53:47] <vlad2> Про W7 и жабаскрипт ничего не знаю.
[00:53:52] <valexey> Of course you can run Oberonjs (and compiled oberonjs programs) on any platform and OS where there are forefox, chrome, IE (>=8) or node.js
[00:53:55] <valexey> до кучи
[00:54:06] <vlad2> Угу.
[00:54:39] <valexey> Улетело.
[01:00:06] <valexey> ББ-сообщество еще одну вещь делают не правильно - они не правильно общаются. Точнее - они не собираются в чятиках и не перетирают свои проблемы и не пытаются договориться там.
[01:00:50] <valexey> Было исследование на это тему - в чятиках (IRC, jabber) общение максимально похоже на реальное. То есть социальные механизмы работают, те самые, древние, которые отвечают за кооперацию племен.
[01:01:02] <valexey> А на форумах и в списках рассылки не работают.
[01:01:31] <valexey> Поэтому, кстати, у опенсорс-проектов обычно есть IRC_канал или jabber-конфа где сидят и общаются распределенные разработчики. Иначе все рассыпается.
[01:24:36] <NEW> <valexey> ...распределенные разработчики...
Правильнее будет "распределённый разработчик" : )
[01:25:11] <valexey> э?
[01:25:48] <NEW> шютка
[01:26:21] <valexey> я просто по опыту того же squid'а говорю
[01:26:48] <valexey> да и гнома тоже
[01:38:04] <valexey> vlad2: кстати, опять на коллизии имен напоролся
[01:38:28] <valexey> когда мой рукотворный модуль зовется как-то также как некий глобальный JS-объект
[01:38:36] <valexey> (причем это не стандартный js-объект)
[01:50:24] <vlad2> Ты это - в issue его, а то забуду.
[01:52:13] <valexey> я еще перепроверю. возможно коллизию можно обойти.
[01:53:22] <NEW> а что за коллизия?
[02:00:53] <valexey> да, коллизию можно обойти.
[02:00:59] <valexey> Пишущий биндинги должен страдать!
[02:22:35] <vlad2> :)
[03:17:50] <valexey> vlad2: зацени вот: http://oberspace.dyndns.org/index.php/topic,541.0.html
[03:17:52] <valexey> запилил
[03:22:40] <vlad2> Вау! :)
[03:23:08] <valexey> :-)
[03:23:20] <valexey> Я ж говорю - процессинг это то, что дохтур Оберону прописал :-)
[03:23:56] <vlad2> Круто. Надо точно страничку допиливать - чтоб там же примеры были.
[03:24:16] <valexey> Ага :-)
[03:26:41] <vlad2> Да, реально тема. И школьникам тоже можно показывать.
[03:27:55] <valexey> Дык! А главное это все не требует особых умений от языка.
[03:28:01] <valexey> Ну, то есть ни дженериков не нужно, ничего такого.
[03:28:38] <vlad2> Угу.
[03:30:59] <valexey> В процессе написания биндинга пару раз хотелось вставить таки ассерты типов. Причем внутри JS.do прямо. Ибо хрен его знает что там из js попрет - в доке некоторые вопросы не освеены
[03:31:06] <valexey> *не освещены
[03:34:27] <vlad2> А где сам processing.js грузится?
[03:34:48] <vlad2> А. Вижу.
[03:35:25] <vlad2> Надо че-то придумать, чтобы оно без ковыряния HTML могло грузится.
[03:35:59] <valexey> это можно. но мне стало лениво :-)
[03:36:14] <valexey> также как я там канвас динамически присобачиваю, можно и скрипт догружать
[03:36:31] <vlad2> В смысле я думал что-то типа JS.import("processing.js")
[03:36:36] <valexey> но оно грузится асинхронно. и я пока не разобрался где ловить это событие, которое говорит что все, оно загрузилось.
[03:37:29] <vlad2> Я так понял там какие-то спец либы есть, чтоб иметь такие евенты (которые сами грузят, в обход браузера)ю
[03:38:51] <valexey> Ну, жыквери (jQuery)
[03:39:31] <valexey> в общем во всем этом еще поковыряться надо будет.
[03:45:58] <valexey> Вообще, надо решить где все эти биндинги держать. То есть в репе с компилятором, или где-то в отдельной кучке.
[03:59:13] <vlad2> Почему бы и не рядом с компилятором?
[03:59:16] <vlad2> Типа examples.
[03:59:37] <vlad2> или bindings
[13:56:50] <valexey> ю
[13:56:51] <valexey> .
[15:23:18] <valexey> .
[15:56:23] <valexey> Ну, вообще все эти примеры являются до кучи неплохим тестом компилятора, да :-)
[16:17:46] <vlad2> Я там домучил баг с тайпгардами.
[16:17:53] <vlad2> Код местами стал ну очень страшный.
[16:18:13] <vlad2> Пора переписывать на нормальном языке ;)
[16:18:20] <valexey> :-)
[16:18:39] <valexey> А что останавливает от переписывания на обероне же?
[16:18:56] <vlad2> Без динамических массивов и дженериков? :)
[16:19:14] <vlad2> Он не будет менее страшным.
[16:19:16] <valexey> Насколько я понимаю, на Обероне можно сделать описание грамматики в том стиле в котором у тебя оно там есть.
[16:19:36] <valexey> гм. ну, мейби. зато рефакторинг будет менее болезненный :-)
[16:19:53] <vlad2> Не, нельзя.
[16:20:05] <vlad2> В смысле инитить поэлементно массив - это не то же самое :)
[16:20:36] <valexey> не нужно поэлементно инитить. короче, блин. сейчас некогда. вот попустит меня с конкурсом, покажу как можно сделать.
[16:21:02] <valexey> Походу некие элементы стандартной либы и окружения для разработчика уже нужно делать.
[16:25:36] <vlad2> Че-то у меня в хроме не работают 3Д демки.
[16:25:49] <valexey> и у меня
[16:25:52] <valexey> а в ФФ работают
[16:28:46] <valexey> chrome://gpu/
[16:28:52] <valexey> сходи сюда, гляно что пишут
[16:29:32] <vlad2> Все хорошо.
[16:29:39] <vlad2> И другие демки работают.
[16:29:50] <valexey> а у меня пишут что
[16:29:55] <valexey> WebGL: Unavailable. Hardware acceleration unavailable
WebGL multisampling: Unavailable. Hardware acceleration unavailable
[16:30:10] <valexey> эти демки работают? http://www.chromeexperiments.com/webgl
[16:30:22] <vlad2> Ага, вот эти и смотрел.
[16:31:10] <valexey> гм. странно. в общем, в хроме какая-то фигня творится :-) ну и вообще webgl пока сыроват для того чтобы на него прям таки кидаться :-)
[16:31:21] <valexey> точнее его поддержка сыровата в браузерах
[16:31:24] <vlad2> WebGL: Hardware accelerated
WebGL multisampling: Hardware accelerated
[16:31:39] <valexey> в общем, вопрос требует изучения
[16:37:05] <valexey> а в FF работает
[16:37:09] <valexey> то есть и на маке тоже
[16:37:23] <valexey> отсюда вывод - FF поддерживает WebGl лучше хрома
[16:54:23] <Kemet> !
[16:54:48] <valexey> !!
[16:55:36] <Kemet> ФФ от яндекса мне сегодня все закладки похерил, гаденыш
[16:55:56] <valexey> /me не доверяет браузерам от яндекса
[16:57:05] <Kemet> дак вот хрен знает чего я его ставил, всегда оригинал пользовал, а тут год назад чето вот так получилось, теперь думаю, вдруг при установке оригинала профили не подхватятся
[17:07:34] <Kemet> нашел в компиляторе АО ещё парочку артефактов
[17:08:06] <valexey> археолог!
[17:08:06] <vlad2> Я думал у яндекса хром переделанный.
[17:10:53] <Kemet> и хром и фф
[17:11:52] <Kemet> оригинал фф установился в папку яндексфф, не совсем то что я хотел, но лучше так, долой яндекс
[17:13:07] <Kemet> valexey: это не раскопки, просто фронтэнд КП для АО же пилю
[17:13:45] <valexey> да, я понял. фронтенд с нуля, или ББшный взял?
[17:16:11] <Kemet> не, я взял за основу АО, смотрю в ББ и переписываю нужные места
[17:18:00] <Kemet> компилятор Fox АО из расчета что будут клепать фронтенды и бакенды разрабатывался, думаю потом еще cyclone прикрутить
[17:20:56] <Kemet> ну т.е. я думаю сделать так - компилятор КП в версии ББ на активном обероне, небольшая модификация А2 и ББ для полной интеграции - чтобы КП мог использовать модули АО, и наоборот
[17:21:32] <Kemet> а для этого нужно свети воедино систему типов как минимум
[17:21:48] <Kemet> ну т.е. чтобы коды совпадали
[17:23:47] <valexey> угу
[17:26:48] <Kemet> там еще ofront лежит пропадает, надо подумать на предмет C-бакенда для АО
[18:14:41] <vlad2> /me опять занимается некрофилией
[18:15:36] <valexey> что, под MacOS 9 пилишь что-то? :-)
[18:16:37] <vlad2> Угу.
[18:17:03] <valexey> o_O
[18:25:20] <jordan36957> Алексей ты говорил, что массив можно сделать через opaque типы. Как это будет выглядеть. На уровне библиотеки? Вроде ArrayNew(M); ArraySetIndex(M, 5); и т.д
[18:26:53] <valexey> Ну, типа того, да.
[18:27:28] <valexey> ArrayInte.Set(arr, 10, 100500);
[18:27:47] <valexey> ArrayInt.Set(arr, 10, 100500);
[18:27:49] <valexey> вот
[18:28:08] <valexey> foo := ArrayInt.Get(arr,10);
[18:29:23] <jordan36957> Ок. Похоже на массив в библиотеке glib.
[18:31:23] <jordan36957> Думаю будет полезным http://www.ibm.com/developerworks/ru/edu/l-glib/section6.html
[19:04:24] <jordan36957> Прикол
[19:04:32] <jordan36957> http://www.youtube.com/watch?v=GyHMe_Kgp1c
[19:04:35] <Kemet> это будут абстракции над списком
[19:05:11] <Kemet> списком массивов фиксразмера, обернуьых в запись
[19:07:05] <jordan36957> Теперь понял.
[19:08:27] <jordan36957> Ещё и строки надо реализовать.
[19:10:05] <Kemet> можно stringpool сделать,
[19:11:43] <Kemet> по ходу дела, без списков в О7 никуда )
[19:11:48] <jordan36957> Лучше внутренний механизм скрыть за абстракцией.
[19:11:50] <jordan36957> Ага.
[19:15:16] <jordan36957> Список вообще не эффективен для памяти. Обращение к озу чаще.
[19:17:23] <Kemet> ну у списков тоже есть плюсы - меньше операций выделения памяти, при увеличении размера коллекции, меньше мусора, но скорость доступа несколько ниже
[19:17:36] <vlad2> valexey: добавь в репозиторий codemirror и чего там еще надо.
[19:17:47] <vlad2> А то оно сейчас не работает после билда
[19:17:52] <jordan36957> Конечно, для разных задач, своя структу + алгоритм.
[19:19:42] <jordan36957> Есть разные техники компенсации добавления в массив. Выделять с шагом и т.д
[19:24:14] <jordan36957> Нужен ли он будет js программистам? Они привыкли s1 + s2, а когда они увидят такой хардкор в стиле си. strcpy(s1, s2)
[19:25:35] <Kemet> наверное он не для jsпрограммистов, а для тех, кто хочет приобщиться к технологии
[19:26:31] <jordan36957> Технологии чего?
[19:26:53] <Kemet> например вебразработки
[19:27:35] <Kemet> но это надо у Влада спрашивать, про целевую аудиторию
[19:28:39] <jordan36957> Штука интересная. Но спартанские условия языка... :-S
[19:29:09] <jordan36957> Как будто в одних трусах на морозе. :-)
[19:31:01] <Kemet> ну может потом оно до нормального Оберона расширится, или даже до О2 или Активного Оберона ), главное же начать, опираясь на чтото обозримое
[19:31:44] <Kemet> пошел варить кофе
[19:32:34] <jordan36957> Согласен.
[19:57:29] <valexey> фиксировано. вне зависимости от нативности
[19:57:57] <valexey> НО модуль реализующий массивы (через opaque тип) может использовать SYSTEM или вообще асмовые вставки для работы с системой напрямую
[19:58:09] <valexey> и дергать memmap какой-нибудь
[19:59:06] <jordan36957> То, что раньше делалось прозрачно и просто, теперб через, леса моря, самолётом поездом и налево через 100 метров?
[20:00:05] <valexey> ну, по эффективности будет также :-)
[20:01:44] <jordan36957> Но за то умственный оверхед. :-)
[20:03:17] <jordan36957> В фортране вроде так же было. Память вся статическая.
[20:10:36] <valexey> jordan36957: на самом деле крутые встроенные в язык массивы ситуацию глобально не улучшат
[20:10:46] <valexey> Это я по опыту написания кода на Go сужу
[20:11:10] <valexey> Даже ассоциативные массивы (через хеш-таблицу) не помогут.
[20:11:31] <valexey> Ибо нужно кроме них еще 100500 разных типов контейнеров.
[20:11:45] <valexey> Поэтому я считаю что пусть лучше все будет единообразно.
[20:12:25] <jordan36957> Всем по лопатам и в перёд. :-)
[20:12:55] <jordan36957> *лопате
[20:13:54] <valexey> все будет не так страшно как тебе кажется :-) во-первых страдает только писатель либы. во-вторых страдает он не сильно, ибо кодогенерация модулей схожая с дженериками в Модуле-3.
[20:15:13] <jordan36957> Отлично.
[20:18:49] <valexey> в общем, вообще говоря, будет чуть удобней чем в Си :-)
[20:18:59] <valexey> А главное - единообразно.
[20:20:44] <jordan36957> странно, что дженерики в 80-ых годах не придумалb. В с++ только в 95, ада в 2005.
[20:21:17] <jordan36957> Лучше сказать реализовали в языках поздно.
[20:21:43] <valexey> дженерики в Аде были с самого начала. 1983 год стандарт
[20:21:49] <valexey> а появились они там еще раньше
[20:22:17] <valexey> Стандарт плюсов вышел в 1998 году.
[20:23:11] <jordan36957> ок
[20:23:44] <valexey> модула-3 с дженериками - 1986 год
[20:24:10] <valexey> у плюсов шаблоны вроде тоже где-то там же. В начале 90-х