Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 23 сентября 2011< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | http://camlunity.ru/ (теперь с git доступом!) | Верблюды грязи не боятся! | release crap, enjoy NIH | репортьте баги официальным дилерам | ocaml мёртв и тормозит, move on | stdlib only? - ССЗБ
Конфигурация комнаты
Участники комнаты

GMT+4
[00:10:24] <gds> Kakadu: то, что называют в окамле char -- на самом деле octet/byte/int8 и всё такое.  А то, что называют string -- на самом деле этого-самого-char array (с мутабельностью и прочим таким).  Так как char это не символ, а байт/октет, я предлагаю ему вполне резонное название byte.  Так как string это не строка (какие кодировки, какой юникод/utf?), и, тем более, мутабельное, я предлагаю ему название Bytearray с различными вариантами сокращений.  Char оставим для "chr = fun x -> if x < 0x80 then Byte.chr x else failwith "it's unicode beiba", для code равных ucode : Char.t -> int для новых символов, bcode : Char.t -> int = fun x -> if x <= '\x80' then Char.code x else failwith "french? latin? goawaiiii!"".  Для строк оставим операции, которые эти строки переживают независимо от кодировки ascii/latin/utf (кото-нация и вывод в виде байтов точно, может что ещё; сходу -- поиск подстроки для упомянутых кодировок сработает, но не для других юникодов).
Конечная цель -- 1. возможность будущего светлого будущего с лёгким изменением кода, 2. актуальные имена, не дающие запутаться в применимости разных кодировок строк, 3. отсутствие в стандартных модулях нестандартных / кодировко-зависимых операций (например, String.get s i = s.[i] -- очевидно вреден, так как при таком обращении с utf8-строкой неисправимо портится процессор).
[00:12:18] <Kakadu> ага
[00:12:38] <Kakadu> т.е. если коротко, то подготовка к впиливанию Юникода в камло?
[00:12:43] <komar> Гм.
[00:12:52] <komar> А вы уверены, что char array = string?
[00:12:57] <Kakadu> да
[00:12:59] <komar> Где это посмотреть, чтобы убедиться?
[00:13:11] <gds> Kakadu: ну, хз, не впилят.  Но, если впилят, то достаточно будет косметических изменений.
[00:13:29] <komar> У меня тут просто в одном коде ребята убегали с char array на string. Я думал, что в этом был какой-то глубинный смысл.
[00:13:31] <gds> komar: по представлению в рантайме -- char array <> string.
[00:13:41] <komar> На представление пофиг.
[00:14:04] <komar> Так где убедиться?
[00:15:19] <gds> по O()-нотации -- один хрен.  По занимаемой памяти -- в 4..8 раз эффективнее string, нежели char array.  По способности пихать в сишечьку -- string всегда заканчивается '\x00' (независимо от количества '\x00' в строке).
[00:16:13] <komar> А с какого перепугу памяти меньше занимает?
[00:17:02] <Kakadu> ну логично же
[00:17:26] <gds> в сишечьке камловский string = char[].  а камловский 'a array = value[], грубо говоря (ибо камловский float ака сишный double бывает).
[00:17:54] <komar> Ага.
[00:18:17] <gds> смысл был, факт.  Если у них везде был char array.
[00:18:19] <komar> Ясно.
[00:19:06] <komar> А вот если бы gds писал, то было бы три уровня обосракции и функтор с выбором бекенда.
[00:19:19] <Kakadu> Кто знает, юниксовый лексер для сишечки как юникод воспринимает?
[00:20:04] <Kakadu> мне просто интересно, что останавливает в прикручивании поддержки юникода
[00:20:47] <komar> Не нужно же ж.
[00:20:49] <gds> э не, это смотря что писал бы.  Есть вещи 1. которые обязательно сделать очень быстрыми, 2. которые можно сделать быстрыми не в ущерб, поименовав/переименовав с расчётом на будущее (как byte/bytearray), 3. есть вещи, которые необязательно делать быстрыми (как получится), но обязательно делать удобными/гибкими.
[00:21:37] <komar> Ты какой-то неакадемик.
[00:21:41] <gds> Kakadu: останавливает многое.  Да вообще какой юникод, если японцы/китайцы не приняли юникод, ибо им там чего-то не хватает?  (по слухам; по запросу могу найти.)
[00:22:21] Typhon вышел(а) из комнаты: Replaced by new connection
[00:22:24] Typhon вошёл(а) в комнату
[00:22:35] <Kakadu> да ну, никогда не слышал. странно
[00:22:38] <gds> komar: ты чо хамиш1  в натуре окодемик бля111  корочку купил честно на свои1
[00:33:11] <gds> Kakadu: чорт, не могу найти про юникод+японцев сходу.  Кажется, что самый простой способ найти -- отписать трололо в стиле "я тут решил либищще сделать, в том числе для японцев/китайцев, хочу мёртво и навечно зашить туда utf8, правильно ли будет работать {сравнение,<другая мелочь>} на иероглифах?".
[00:34:05] Typhon вышел(а) из комнаты: Replaced by new connection
[00:34:07] Typhon вошёл(а) в комнату
[00:34:13] <Kakadu> Эх, были бы у меня знакомые японцы
[00:34:31] <Kakadu> гоменасай. хай. и т.д.
[00:35:22] <komar> Зачем нужны все эти юникоды? Дайте людям свободу делать с ихними байтами все что они хотят.
[00:37:38] <shaggie> gds: огласите весь список <других мелочей>, пожалуйста
[00:39:29] <gds> komar: а потом на консоль вываливается хрень от apt-get какого-нибудь, типа "\nЗагружен паке\x04...\nСледующий пакет: xxx", или ещё какой-то сайт при обрезании "по байтам" (он-то думает "по количеству символов", наивный) оказывается, что и html битый какой-то -- вообразить картину сходу получится?
[00:40:57] <komar> А почему бы не предоставить функции обрезания по символам самомой парсить уникод? Это нужно куда реже. А иначе нам надо будет переводить каждую строку в юникодовый тип и при этом валиться с эксепшоном там, где это, может, и не нужно.
[00:41:52] <gds> shaggie: 1. как факт -- возможность записи их иероглифов в виде utf8-символов.  где-то про подобные проблемы слышал, страшно.  2. к сортировке -- uppercase, lowercase, сравнение без регистра, нормализация разных видов, сравнение с нормализацией и без -- точно ли utf8 как "тип данных" будет достаточен?  я не знаю их "алфавита", поэтому не уверен.
[00:42:18] <komar>
[00:42:18] Typhon вышел(а) из комнаты
[00:42:20] <komar> Кстати.
[00:42:38] <komar> gds: вот видишь, что бывает?
[00:42:55] <shaggie> > возможность записи их иероглифов в виде utf8-символов
никаких сомнений, как раз сегодня парился с иероглифами в юникоде
[00:44:46] <shaggie> >  uppercase, lowercase, сравнение без регистра etc
это же не применимо к иероглифам. они всегда в одном регистре, что кандзи, что слоговые
[00:45:27] <gds> komar: "обрезалка" -- демонстрация того, что "по байтам жить" -- давать навряд ли нужно в общем случае.  Бесполезно.  То есть, всю строку выводить, конечно, надо, но давать резать -- не ок.
Далее, string -- это char array в смысле мутабельности.  Это полезно, это практически незаменимо, за это я камло уважаю без меры.  Но это надо назвать ByteArray, а не String.  Потому что какой-то левый код может поменять твою мать её строку1111111  in-place, без уведомления, тут же, сразу, внезапно1111
[00:46:35] <Kakadu> предлагаю запилить в компилятор тип ustring с интерфейсом как у String и радоваться начать
[00:46:55] <komar> Я тебе запилю.
[00:47:16] <komar> Делайте функции для обрезания и прочей ерунды.
[00:49:43] <gds> shaggie: 1. я про _все_ их иероглифы -- где-то давно читал (в caml-list вроде), что далеко не всех удовлетворяет юникод.  Плохо, что не нашёл до сих пор.  Будут идеи, как найти -- поищу.  2. про регистры -- догадывался, но не был уверен.  Теперь буду знать.  Но вроде есть какая-то *ана для заимствованных слов, изоморфная латинице либо звукам, хз, есть ли там регистр.  Впрочем, я не компетентен в этом вопросе.  (и, вроде, Гарриг либо Наката выражали про негодность юникода, надо узнать.)
[00:52:50] <gds> komar: это я твою строку запилю (если мне в либу дашь её, либо наоборот).  Она же мутабельная.  Сейчас всё держится на честном слове, но это же постная этасамая.  Ну, будет тебе Bytearray, по типам-значениям равный текущему String, ну и нормально, чо.
[00:53:37] Kakadu вышел(а) из комнаты
[00:54:00] <shaggie> если в юникоде представлены и не все иероглифы, то в любом случае очень много. все обычные случаи должны покрываться с головой. в крайнем случае можно найти заменитель из составных иероглифов или оставить слово непереведённым (у меня такое бывает, когда перевод слова не может быть адекватным на японском). опять же есть аж две слоговые азбуки, для своих слов и для иностранных - их них можно составить абсолютно любое слово. так что не критично
[00:58:40] <shaggie> > Но вроде есть какая-то *ана для заимствованных слов, изоморфная латинице либо звукам, хз, есть ли там регистр.
для заимствованных слов катакана, для японских хирагана. регистров нет ни в одной из них :)
[01:00:31] <shaggie> gds: я можбыть ошибаюсь, но имхо если дело дошло до кроссязыковой либы, в т.ч. для японцев/китайцев, то там строками оперировать желательно по минимуму, только выдавать шаблонные заготовки. если доходит дело до приёма текстовых сообщений в программу, то используются они в нейтральных выражениях без контекста, обрабатываются по минимуму - иначе на каждый язык вариантов обработки не оберёшься.
[01:10:16] <gds> shaggie: идеи понял, как про все / не все, так и про *аны.  Как вспомню -- поищу ещё, но пока этой "интуиции"/"эвристики" мне хватает.  Теперь у меня нет другого разумного выбора.  Сделаю модуль String для общих штук (тип, склеивание, побайтовое сравнение, вывод в виде последовательности байтов, байтовый хеш), и модули String.<Кодировка> для Byte (однобайтовой), Utf8 (для utf8), ну и с возможностью продолжать.  Наверное, так.  Наверное, без особых абстракций (т.е. с возможностью использовать общий тип "строка" для работы с любыми строками, если подсунуть правильное имя модуля).  Пока не знаю.  Главное -- общий интерфейс выделить, ну вписать в текущее камло.
Про кроссязыково -- да, надо, ну и "не резать", "минимум обработки", этим должна заведовать либо специально-обученная либа, либо какой-нибудь camomile, который в этом хорош (его японец писал, он на себе вынес все эти языковые унижения).
Но делать конкретные дела буду 1. не сейчас (спатке скоро, ибо), 2. ещё подумав.
На "батарейки" надо посмотреть ещё, как там у них.
Но вот, хотя бы, для своих программ надо бы текущий String перенести частично в String.(Latin|Ascii), частично в Bytearray, чтобы не обманываться.
[01:12:06] gds вышел(а) из комнаты
[01:15:15] Typhon вошёл(а) в комнату
[01:15:16] Typhon вышел(а) из комнаты
[01:15:30] Typhon вошёл(а) в комнату
[01:15:31] Typhon вышел(а) из комнаты
[01:15:41] Typhon вошёл(а) в комнату
[01:15:42] Typhon вышел(а) из комнаты
[01:15:52] Typhon вошёл(а) в комнату
[01:15:54] Typhon вышел(а) из комнаты
[01:16:03] Typhon вошёл(а) в комнату
[01:16:04] Typhon вышел(а) из комнаты
[01:16:16] Typhon вошёл(а) в комнату
[01:16:18] Typhon вышел(а) из комнаты: offline
[01:40:29] shaggie вышел(а) из комнаты
[02:29:01] komar вышел(а) из комнаты
[04:47:36] letrec вошёл(а) в комнату
[06:05:14] letrec вышел(а) из комнаты
[07:25:00] zert вошёл(а) в комнату
[10:18:24] iNode вышел(а) из комнаты
[11:26:08] Kakadu вошёл(а) в комнату
[11:42:00] gds вошёл(а) в комнату
[12:24:28] <Kakadu> ага, теперь мы знаем кто из нас есть на хабре
[12:25:19] <zert> кто?
[12:27:11] <Kakadu> можешь сам комменты посмотреть
[12:27:17] <zert> где?
[12:27:32] <Kakadu> http://habrahabr.ru/blogs/webdev/128952/
[12:30:08] <f[x]> gds: Bytearray -> Bytes
[12:30:25] <zert> ни одного знакомого ника
[12:30:31] <zert> я там тащемта тоже есть
[12:30:36] <zert> но не комментил
[12:30:43] <zert> и вообще на хабар забил
[12:32:32] <Kakadu> zert: ну я вижу знакомый ник
[12:32:54] <Kakadu> надо бы тоже написать какую-нить байду про lablqt потом
[12:34:02] <Kakadu> скажите, это слишком мудрёно, или пойдет? https://github.com/Kakadu/lablqt/wiki/Creating-user%27s-slots
[12:47:33] <gds> f[x]: чтобы можно было "слава байтам!" и "о мои байты!", да? :]  А так -- логично, идея очень хорошая, так и сделаю.
[12:49:15] <gds> хабропост и каменты в кои-то веки по нраву.
[12:50:41] <gds> Kakadu: по-моему, мудрёно очень.  Давай проведём мысленный эксперимент.  Представь, что qt'шной/плюсовой специфики нет.  Какое должно быть апи для создания слотов с камловской стороны?
[12:52:07] <Kakadu> gds: надо просто приписывать метод в определенный класс
[12:52:31] <gds> с камловской стороны?
[12:52:34] <Kakadu> да
[12:55:11] <gds> то есть, был класс без метода, а надо сделать класс с методом.  То есть, получается, в идеале должна быть функция, берущая один тип и возвращающая другой тип?
[12:56:41] <Kakadu> не понял
[12:58:10] <Kakadu> надо ещё понять, мы сейчас говорим о динамическом или статическом создании нового слота. На сколько я знаю кути из коробки динамическое создание не поддерживает. Но если переписать moc, думаю что-нибудь да получится.
[12:59:15] <Kakadu> На сколько я понял, при вызове слота, там в генеренном коде есть один большой if который решает какой слот вызывать и куча reinterpret_cast'ов
[13:03:19] Kakadu чует, что сейчас он увидит подробное объяснение то gds на полэкрана. Хорошо, что ему не лень это писать.
[13:03:24] <Kakadu> от*
[13:03:43] <gds> отвлёкся, пока нет полэкрана.  ща нагенерю.
[13:04:31] <gds> то есть, слоты создаются только при компиляции этим самым moc, так?
[13:05:12] <Kakadu> да
[13:05:19] <Kakadu> в кути и у меня так сейчас
[13:06:08] Typhon вошёл(а) в комнату
[13:06:14] <f[x]> gds: признайся сразу что ты не знаешь что такое слоты :)
[13:06:37] <gds> так я вроде это сразу сказал.  но это не мешает :)
[13:07:17] <Kakadu> ну тогда я напишу для всех точек над i
[13:11:09] <gds> я пытаюсь вникнуть в код ещё, вот в чём дело.  и у меня ещё утро :)
[13:15:59] <Kakadu> В кути принята мета-объектная модель: классы отнаследованный от QObject могут иметь метаинфу о том, что у них есть сигналы, слоты, свойства. С помощью сигналов и слотов работает событийная модель: объект реагирует на событие посылая сигнал, а обработчик принимая этот сигнал в некотором слоте реагирует на этот сигнал. Например, кнопка при нажатии на неё посылает сигнал clicked() а объект класса QApplication принимает этот сигнал в свой слот quit().
Один сигнал может быть соединен с несколькими слотами, один слот может быть подписан на несколько сигналов.
Сигналы могут нести с собой ещё и параметры, например кнопка, которая может фиксироваться в нажатом или не нажатом состоянии посылает сигнал toggled(bool) при изменении своего состояния. (Думаю понятно что передается в булевской переменной). Сигнал toggled(bool) может быть подписан на слот onclicked(bool) какого-либо объекта. В этом слоте мы можем делать различные действия в зависимости от переменной типа bool.
Фишка: Если у сигнала боше параметров, чем у слота, то всёравно можно соединять их, если первые параметры совпадают по типу (последние параметры сигнала просто выкидываются). Например, сигнал toggled(bool) может быть запросто соединен со слотом quit().
[13:20:09] <gds> всё понял.  Страшновато.
[13:20:53] <Kakadu> gds: мне кажется что по сравнению с WPF в дотнете, то это явно подход в стиле keep it simple
[13:23:12] shaggie вошёл(а) в комнату
[13:24:14] <gds> Kakadu: а в void foo данный код: "args[0] = Val_int (x0); " -- пишется кем/чем?  человеком или программой, и если программой, то какой?
[13:24:45] <Kakadu> моей тулой aka mocml
[13:25:57] <gds> так а что нужно от человека, в таком случае?  то есть, как в случае с билд-скриптом, это (по ссылке) -- описание логики работы просто для справки / для документации, или это нужно для использования либы?
[13:29:09] <gds> если это нужно для использования, то явно неплохо бы увидеть граф действий, типа "файл такой-то -- пишет кодер, описывает слоты/сигналы в таком-то виде" -> "при сборке запускается mocml, генерит файлы xxx.cpp и yyy.h (условно)" -> "xxx.cpp компилируется вместе с xx.ml" -> "готовая программа в x.byte/x.native"
[13:29:28] <Kakadu> gds: Человек должен написать входной файл для mocml c
let foo: int -> int -> unit
let goo: qWidget -> qWidget
И также запихнуть свой код например как
let boo x y =
        Printf.printf "%d + %d = %d\n" x y (x+y);
        flush stdout
let goo w = match w#parentWidget with
  | None -> assert false
  | Some x -> x
[13:29:39] <Kakadu> И третье: добавить правила в Makefile
[13:30:32] <gds> то есть, это была документация о процессе сборки, описание внутренностей и документация для тех, кто хочет поковырять.  Так?
[13:31:40] <Kakadu> да
[13:33:16] <gds> понял.
поначалу я испугался, что для использования твоей либы придётся всё это писать.  Если это часть документации, то лучше как-то предупредить, что "это генерится само" или "это приведено только для информации".  И я с этой стороны всё расценивал.  Плохо дело.  Зато узнал про слоты/сигналы.
И в качестве такой документации -- ты всё правильно описал.  Разве что из пожеланий -- граф зависимостей между файлами, типа "было то-то и то-то, запустили тулу, сгенерились такие-то файлы".
[13:38:07] <f[x]> угу, явно указывай где дока для юзеров, а где для ковырятелей
[13:38:17] <f[x]> и в первую очередь пиши доку для юзеров :)
[13:41:08] Kakadu вышел(а) из комнаты
[14:01:28] Kakadu вошёл(а) в комнату
[14:32:29] bobry вошёл(а) в комнату
[14:45:15] komar вошёл(а) в комнату
[14:54:36] iNode вошёл(а) в комнату
[15:05:06] ftrvxmtrx вышел(а) из комнаты
[15:06:55] ftrvxmtrx вошёл(а) в комнату
[15:13:01] ftrvxmtrx вышел(а) из комнаты
[15:14:43] ftrvxmtrx вошёл(а) в комнату
[15:16:50] ftrvxmtrx вышел(а) из комнаты
[15:17:31] Kakadu вышел(а) из комнаты
[15:23:59] zert вышел(а) из комнаты
[15:24:38] zert вошёл(а) в комнату
[15:27:11] letrec вошёл(а) в комнату
[15:43:42] komar вышел(а) из комнаты: Replaced by new connection
[15:43:43] komar вошёл(а) в комнату
[16:09:56] <bobry> товарищи, а реально bitstring на оазис перетащить?
[16:10:20] <bobry> там какие то хитрые макросы из autoconf'a используются для определения endiannes
[16:10:30] <bobry> я даже не знаю как это можно в oasis'e провернуть
[16:12:01] <f[x]> реально
[16:12:22] <f[x]> делаешь все билд-шаги кастомными для начала
[16:12:44] <f[x]> потом то что можно - используешь встроенное - что не можно (autoconf например) оставляешь как есть
[16:13:24] <bobry> проблема в том что autoconf пишет endianess в .ml файл — который потом используется в коде
[16:13:35] <bobry> т.е. без него ничего не получится :)
[16:15:23] <f[x]> ну и нормально, в чём проблема?
[16:15:35] <f[x]> пихаешь его в custom preconfigure
[16:15:45] <f[x]> или postconfigure
[16:16:36] <bobry> а, т.е. ты предлагаешь оставить autconf, я то думал выпилить его совсем
[16:18:27] <f[x]> угу
[16:19:14] <Typhon> можно заменить автоконф на какой-нибудь мл скрипт
[16:19:22] <f[x]> можно попросить в oasis добавить флажок endiannes
[16:19:36] <f[x]> хотя это сто лет ждать
[16:20:49] <bobry> Typhon: из ml endiannes не узнать же
[16:24:33] <Typhon> http://serverfault.com/questions/163487/linux-how-to-tell-if-system-is-big-endian-or-little-endian/163493#163493
[16:25:44] <f[x]> ocaml madness: fun~x?(x=(x:>int))()->x
[16:25:46] <Typhon> http://caml.inria.fr/mantis/bug_view_advanced_page.php?bug_id=4898
[16:25:58] <bobry> nice
[16:26:35] <bobry> 3.12.1+dev?
[16:35:04] <gds> кто там битстринги делает -- рвмж?  проще с ним списаться.
[16:35:23] <gds> вдруг у него есть наработки, и вдруг он принципиально не хочет такого.
[16:35:34] <gds> или вдруг это трудно по другим соображениям.
[16:36:47] <bobry> gds: bitstring не обновлялся уже фик знает сколько — какие наработки?
[16:39:05] <gds> может, ему присылали патчи, а он их в долгий ящик клал.
[16:40:25] <f[x]> так и есть/было
[16:46:02] <gds> ну, может, выложит.  вдруг там что-то ещё интересное есть.
[17:03:52] bobry вышел(а) из комнаты
[17:51:49] Kakadu вошёл(а) в комнату
[18:19:11] <Kakadu> А не кажется ли вам , что все байндинги это абсолютно бесполезная штука, потому что отнаследоваться в полной мере от какого-нибудь QGraphicsPixmapItem мы всёравно не сможем?
[18:19:19] <Kakadu> или это не критично?
[18:21:41] <Kakadu> и вообще мне надо придумать следующий шаг. или полушаг
[18:22:20] <f[x]> а почему не сможем. и что значит отнаследоваться? достаточно уметь привязывать свои данные и код к объекту который на qt'шной стороне представлен как соответсвующий с++ объект
[18:24:29] <Kakadu> т.е. когда мы будем добавлять на GraphicsView TankPixmapItem или CannonPixmapItem, то эти две камлевые функции будут оборачивать кутишный объект?
[18:24:36] <Kakadu> да, наверное так.
[18:24:42] <Kakadu> надо как-нибудь попробовать
[18:25:04] <Kakadu> и надо ещё потестить функции на принибительное удаление объектов.
[18:25:13] <Kakadu> принудительное*
[18:57:45] Kakadu вышел(а) из комнаты
[19:18:38] zert вышел(а) из комнаты
[19:36:52] bobry вошёл(а) в комнату
[19:51:35] Kakadu вошёл(а) в комнату
[19:55:38] bobry вышел(а) из комнаты
[20:46:06] komar вышел(а) из комнаты
[21:28:57] letrec вышел(а) из комнаты
[21:57:35] shaggie вышел(а) из комнаты
[21:58:11] ftrvxmtrx вошёл(а) в комнату
[22:04:58] ftrvxmtrx вышел(а) из комнаты
[22:05:19] ftrvxmtrx вошёл(а) в комнату
[22:08:05] komar вошёл(а) в комнату
[22:15:58] ftrvxmtrx вышел(а) из комнаты
[22:16:14] ftrvxmtrx вошёл(а) в комнату
[22:32:16] <Kakadu> bobry: будешь приглашать torkve в наш чатик, или не стоит?
[22:47:20] <bobry> а ты его знаешь?
[22:48:25] <bobry> Kakadu: почему бы и нет, нас тут и так немного :)
[22:48:49] <Kakadu> bobry: я не знаю и на хабре меня нет
[22:48:57] <Kakadu> так что на тебя вся надежда
[22:49:07] <bobry> sure
[22:50:42] <bobry> done
[22:59:42] ftrvxmtrx вышел(а) из комнаты
[23:00:02] ftrvxmtrx вошёл(а) в комнату
[23:04:44] ftrvxmtrx вышел(а) из комнаты
[23:04:58] ftrvxmtrx вошёл(а) в комнату
[23:07:53] ftrvxmtrx вышел(а) из комнаты
[23:08:27] ftrvxmtrx вошёл(а) в комнату
[23:12:36] <bobry> Typhon: какой то ты странный tuareg-mode засабмитил, он старый совсем
[23:21:22] ftrvxmtrx вышел(а) из комнаты
[23:21:38] ftrvxmtrx вошёл(а) в комнату
[23:25:02] ftrvxmtrx вышел(а) из комнаты
[23:26:46] ftrvxmtrx вошёл(а) в комнату
[23:27:50] <Kakadu> я вам авторитетно скажу что фа-диез под моно --- это какой-то феерический пиздец
[23:28:21] <gds> а чочо?
[23:28:39] ftrvxmtrx вышел(а) из комнаты
[23:29:12] ftrvxmtrx вошёл(а) в комнату
[23:29:23] <Kakadu> чо слышал
[23:29:46] <gds> ок!
[23:29:57] <Kakadu> во-первых из коробки не заработало ибо fsc.exe конфликтовал с mscorlib
[23:30:05] <Kakadu> пришлось пересобрать руками
[23:30:08] <Kakadu> ну это фигня
[23:30:36] <Kakadu> плагиин для monodevelop не знает ничего про файлы типа FsLex. И поэтому хрен скомпилишь ты проект
[23:30:40] <Kakadu> ну да ладно
[23:30:46] <Kakadu> пишу makefile
[23:30:53] <Kakadu> компиляю
[23:30:59] <Kakadu> крешится конпелятор!!!
[23:31:18] <Kakadu> facepalm
[23:40:29] ftrvxmtrx вышел(а) из комнаты
[23:40:50] ftrvxmtrx вошёл(а) в комнату
[23:44:47] <Kakadu> люди, а не слишком трололо писать в конце багрепорта о том, что компилятор нафиг крешится что-то типа
Best wishes,
Kakadu
[23:44:49] <Kakadu> ?
[23:45:41] <bobry> сликшом имхо
[23:47:21] ftrvxmtrx вышел(а) из комнаты
[23:49:01] ftrvxmtrx вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!