Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 12 марта 2010< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | voice по запросу | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+3
[00:12:15] ygrek вышел(а) из комнаты
[00:16:16] <valexey> о! заработало таки.
[00:29:11] <ermine> а на хваскиле подобное есть?
[01:11:30] digital_curse вышел(а) из комнаты
[01:12:10] digital_curse вошёл(а) в комнату
[01:30:13] ermine вышел(а) из комнаты
[01:46:23] digital_curse вышел(а) из комнаты
[02:39:27] Typhon вышел(а) из комнаты
[03:54:59] daapp вошёл(а) в комнату
[06:51:34] digital_curse вошёл(а) в комнату
[07:21:17] iNode вышел(а) из комнаты
[07:36:36] olegfink вошёл(а) в комнату
[07:41:28] digital_curse вышел(а) из комнаты
[07:57:57] iNode вошёл(а) в комнату
[09:01:32] gds вошёл(а) в комнату
[10:26:54] <gds> (в рамках популярного оффтопика)
ковыряю ocaml-mysql одновременно дома и на работе (ибо дома нормальный shtool+autoconf, а на работе mingw), имею два гитовских репозитория с рабочими копиями каждый.  Теперь при протаскивании изменений между ними я должен или создать общий bare-репозиторий, или выполнять заклинания "git push origin master:refs/remotes/xxx/master" там, откуда пушим, и "git merge xxx/master" там, куда пушим.  Удобство -- адское.  Меркуриал предупредил бы "push creates remote head", а "hg push -f" запушил бы, и было бы там две анонимные головы (и соответственно возможность их слить простым "hg merge").
Почему говорю тут -- с одной стороны, показать, что даже интерфейс командной строки можно (и нужно) делать удобным, с другой стороны, узнать, может здешние гитоводы подскажут что-нибудь поудобнее для задачи "сгенерить часть изменений тут, протащить туда, модифицировать там, скинуть сюда взад".  С третьей стороны, если можно пнуть гит, почему бы не пнуть :)
[10:54:17] ermine вошёл(а) в комнату
[10:58:41] <f[x]> я тоже так делаю когда лень bare делать, плюс в .git/config пишешь push = refs/heads/master:refs/remotes/xxx/master и тогда делаешь просто git push
конечно если ошибёшься где-нибудь то гит может больно наказать. трус не использует git :)
[11:01:40] <gds> трус -- он такой.  И гит не использует, и на ассемблере не пишет.
Пока у меня изменения на границе файлов, и обошёлся sftp.  И чтобы заодно лог изменений не загаживать.
[11:28:49] <gds> mysql C connector взял, скопировал, инклуды в c:/mingw/include/mysql, имплибу сделал,
In file included from c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/mysql/my_global.h:74,
                 from mysql_stubs.c:23:
c:/mingw/include/mysql/config-win.h:114: error: conflicting types for 'mode_t'
c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/sys/types.h:85: error: previous declaration of 'mode_t' was here
оба typedef'а mode_t для использования в chmod, но в mysql это int, в mingw это unsigned short (имхо правильно).
[11:32:29] alexey.veselovsky вошёл(а) в комнату
[11:32:35] alexey.veselovsky вышел(а) из комнаты: I'm happy Miranda IM user. Get it at http://miranda-im.org/.
[11:32:57] valexey_ вошёл(а) в комнату
[11:34:48] valexey_ вышел(а) из комнаты
[11:35:15] valexey_ вошёл(а) в комнату
[11:35:19] <f[x]> интересные слайды касательно f#/ml и связи с реальным миром (ffi, gui)
http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/slides/dsyme-serious-sep-04-v3.ppt
http://research.microsoft.com/en-us/um/people/nick/multilanguageinfrastructureandinteroperability.ppt
[11:35:48] <f[x]> gds: имплибу делал потому-что та что в lib для gcc не подходит, да?
[11:36:34] <valexey_> спасибо
[11:36:42] <valexey_> не понимаю, почему valexey не отваливается...
[11:37:09] <valexey_> ужель jabber.org глючит.
[11:37:20] <f[x]> ejabbered написан на ерланге, hence баги это нормально
[11:37:37] <valexey_> jabber.org не использует ejabberd
[11:37:48] <f[x]> ну конфа то на j.ru
[11:38:05] <valexey_> да, но баги с j.org аккаунтом.
[11:38:20] <valexey_> а что же, в камле паттерн матчинг только через match?
[11:39:17] <valexey_> ermine: хаскеля для жабы полноценного и свежено не видел.
[11:39:56] <f[x]> ещё function и let binding
[11:40:43] <valexey_> гм. а как? а давеча в f# пытался, у мну не получилось.
[11:40:46] <valexey_> примерчик можно?
[11:40:51] <f[x]> gds: а если убрать include my_global.h ?
[11:41:03] <f[x]> f# это не камль
[11:41:24] <valexey_> но крякает почти как утка.
[11:41:42] <valexey_> скорее всего я где-то накосячил.
[11:41:50] <f[x]> let f = function Some x -> x | None -> failwith "oops";;
[11:41:52] <valexey_> вот как факториал с таким паттерн-матчингом будет выглядеть?
[11:42:04] <valexey_> ага.
[11:42:05] <valexey_> ясно.
[11:42:10] <valexey_> я таки накосячил :-)
[11:42:16] <f[x]> и мануал стоит почитать
[11:42:29] <valexey_> я хаскелеподобно пытался сделать. естественно компилер бил меня по башке.
[11:42:39] <gds> f[x]: имплибу -- потому что помню, что не должно проходить.  Но сейчас до линковки не дошёл пока, т.е. может и имплиба не покатит.
[11:43:36] <f[x]> вообще надо хоть на вики оформить какие-то best practices как писать либу с сишными биндингами чтобы она с минимумом проблем собиралась на всех инкарнкациях камля
[11:45:05] <f[x]> т.е. например OCamlMakefile требует bash/sed т.е. для ocaml/msvc не очень годится, ocamlbuild требует bash (сслыка где брать), хинт не забывать про расширения файлов (o/obj, a/lib etc), и прочие подобные косяки
[11:46:00] <f[x]> ещё: msvc не понимает c99 - поэтому на gcc сразу давать -std=c89 чтобы отлавливать несоответствия
[11:46:03] <gds> а, такие вещи да, надо.  Но линупсоедэ обычно не очень заинтересованы в том, чтобы софт собирался дальше их болота.
[11:46:55] <f[x]> gds: верь в людей. просто про это надо хотя бы знать, если будет где описано - проще будет
[11:47:12] <f[x]> линупсоеды не злые, просто ленивые как и все :)
[11:51:54] <f[x]> хотя иногда бывают и злые
[11:56:48] <f[x]> > let rec x = y
and y = x;;
val x : 'a
val y : 'a
> x;;
проверяю код из слайдов, в слайдах написано что будет compile-time ошибка а в реальности fsi в бесконечном цикле, жесть
[11:57:25] <valexey_> ну ведь ошибка есть :-)
[11:57:27] <valexey_> точнее баг
[12:04:54] gds вышел(а) из комнаты
[12:34:30] Typhon вошёл(а) в комнату
[12:36:20] <valexey_> гм. а как явно задать тип функции? т.е. аналог хаскельного:
foo :: Int -> Int
foo a = что-то там
[12:36:58] <valexey_> ну и до кучи как охрану сделать?
foo a | a > 0 = что-то там
[12:48:05] gds вошёл(а) в комнату
[12:52:14] <olegfink> let rec fac : int -> int = function n when n > 1 -> n * fac (n-1) | _ -> 1 ;;
[12:57:56] <f[x]> valexey_: http://ocaml-tutorial.org
[12:58:11] <valexey_> угу. почитаю.
[12:58:41] <valexey_> пока у меня тут f# спека открыта.
[12:59:57] <f[x]> ну значит читай спеку и гугл, не стоит увеличивать энтропию нубскими вопросами
[13:00:44] <valexey_> гугла нету, что усложняет задачу.
[13:04:33] gds вышел(а) из комнаты
[13:05:02] gds вошёл(а) в комнату
[13:08:54] daapp вышел(а) из комнаты
[13:14:11] <gds> # let rec x = y and y = x;;
Characters 12-13:
  let rec x = y and y = x;;
              ^
Error: This kind of expression is not allowed as right-hand side of `let rec'
или ошибка в том, что оно выводит типы 'a?
[13:19:43] <f[x]> в том что вообще пропускает value recursion
[13:20:15] <f[x]> т.е. у в слайдах описано расширение для value recursion чтобы менее жёсткое ограничение чем в камле
[13:21:37] <f[x]> а в текущей версии получается вообще никакого ограничения нет
[13:22:02] <f[x]> кстати, что мы решали насчёт f#? онтопик или в отдельную конфу?
[13:23:14] <olegfink> ну тут же такая толпища и шум, что если еще и f# обсуждать, точно jabber.ru завалим.
[13:23:37] <sceptic> онтопик
[13:23:59] <valexey_> тут и так народу мало :-)
[13:24:01] <f[x]> в последние дни достаточно шумно кстати, а ms ещё даже студию не релизнула :(
[13:24:05] <f[x]> * :)
[13:24:29] <olegfink> ну так мс своего не упускает
[13:24:44] <olegfink> в msvs поддержка f# из коробки, а в .net 4 runtime -- нет
[13:24:56] <valexey_> в смысле?
[13:25:07] <olegfink> нужен еще f# redistributable всем пользователям твоей чудесной софтины
[13:25:11] <valexey_> зачем в .net 4 какая-то поддержка камла?
[13:25:19] <olegfink> не камла, а f#
[13:25:20] <valexey_> хм. неприятно.
[13:25:27] <f[x]> я к тому что как релизнет, так набежит нубов
[13:25:43] <valexey_> ocamljava, впрочем, тоже требует.
[13:25:54] <valexey_> т.е. нужно несколько доп. jar'чиков с собой таскать.
[13:26:51] <gds> f[x]: наверное туплю.  В камле есть как раз value recursion.
[13:29:18] <f[x]> gds: в sml разрешён function recursion, в камле value recursion с ограничениями (конструкторы, lazy, etc), в f# хотели ещё дальше подвинуть ограничение (вплоть до частичной проверки в рантайме (как в камлевых модулях?)), в haskell нет ограничения за счёт тотального lazy
[13:29:51] <f[x]> но то были древние слайды, просто там хорошее описание
[13:29:52] <valexey_> хаскелю лениво проверять на ограничения? :-)
[13:31:05] <gds> ага, всё понятно.
[13:35:11] <sceptic> f[x]: подписчики на мсдн уже получили студию же
[13:35:26] <valexey_> угу. получили.
[13:35:36] <valexey_> кроме того, ничто же не мешает поставить это дело в vs 2008
[13:35:49] <valexey_> оно прекрасно в 2008 студию интегрируется.
[13:35:55] <valexey_> что я лично и сделал.
[13:38:22] <f[x]> и обрати внимание сразу какой всплеск интереса, раньше про f# тут молчок был
[13:39:28] <sceptic> потому что из F# можно использовать ЛЮБУЮ библиотеку .NET, а их легионы
[13:39:30] <gds> f# вообще набирает популярность, всё вполне объяснимо.
[13:40:26] <valexey_> ну, из ocamljava тоже можно любую либу жабовую использовать :-)
[13:40:31] <valexey_> вроде как.
[13:40:49] <valexey_> только геморроя с ocamljava побольше. и всяких ide нема.
[13:41:24] <gds> открыл жыжыцу, первый же пост: http://andrzejn.livejournal.com/1499583.html -- от человека, который о программировании вообще пишет очень редко.
[13:44:32] <valexey_> посмотрим где работоспособности программы использующей piccolo под линухом будет проще добиться. на f# или на ocamljava
[13:59:05] valexey_ вышел(а) из комнаты
[13:59:40] <gds> опят двадцотпят.
ocamlmklib -o mysql_stubs mysql_stubs.o -lz
ocamlc -a -dllib dllmysql_stubs.dll -ccopt -Lc:/gtk/lib -cclib -lmysql_stubs -cclib -lz -o mysql.cma mysql.cmo
ocamlc -custom -I . mysql.cma demo.ml -o demo.byte  -- ругается, ибо нет имплибы
а если же
ocamlc -custom -I . -cclib -lmysql  mysql.cma demo.ml -o demo.byte  -- компиляется, линкуется, запускается, пытается работать
господа гусары, подскажите, куда бы мне засунуть "-cclib -lmysql"?
[14:00:25] <f[x]> в ocamlmklib
[14:01:43] valexey_ вошёл(а) в комнату
[14:03:48] <f[x]> только без -cclib
[14:03:58] <f[x]> просто
ocamlmklib -o mysql_stubs mysql_stubs.o -lz -lmysql
[14:12:18] <gds> ocamlmklib -o mysql_stubs mysql_stubs.o -lz -lmysql
ocamlc -a -dllib dllmysql_stubs.dll -cclib -lmysql_stubs -cclib -lz -o mysql.cma mysql.cmo
ocamlc -custom -I . mysql.cma demo.ml -o demo.byte
** Cannot resolve symbols for libmysql_stubs.a(mysql_stubs.o):
_mysql_affected_rows@4
[...]
[14:13:29] <gds> стабильно раз в год разборки с этой темой :)
[14:40:48] <gds> помогло "-cclib -lmysql" в
ocamlc -a -dllib dllmysql_stubs.dll -cclib -lmysql  -cclib -lmysql_stubs -cclib -lz   -o mysql.cma mysql.cmo
что логично, так как ocamlmklib собрал dllmysql_stubs.dll + libmysql_stubs.a, тогда как опции линкеру хранятся не в .a, а в .cma/.cmxa (которое собирается через ocamlc -a).
но всё равно, как-то мутно это: вроде ocamlmklib должен делать что-то бОльшее, чем просто запаковать stub'ы в libname.a и dllname.dll.
[14:42:56] ermine пытается содрать bdb с sks
[14:48:18] <ermine> чота это занятие энтузиазма не вызывает
[14:50:32] <ermine> gds: ты вроде трогал ocaml-bdb?
[14:50:55] <gds> не, штатный dbm заводил разве что.
[14:54:22] <gds> конечно, на любителя, но вроде dbm (gdbm) -- гнутый ответ bdb, или есть какие-то различия?
[14:55:19] <ermine> а тама ж нет транзакций, локов и прочих мутных вещей
[14:56:03] <ermine> вот думаю - а не пользовать дальше постгресом, если нет кавайной библиотеки для bdb
[14:57:54] <gds> транзакций точно нет, локи вроде как реализованы ( http://www.delorie.com/gnu/docs/gdbm/gdbm_4.html , про "int flags" )
[14:58:51] <ermine> ты локи видел в окамлевой библиотеке?
[14:59:22] <ermine> флаги в камлевой какие-то были...
[14:59:26] <ermine> для создания
[15:00:09] <gds> я про их наличие вообще.  а в камлевой -- не видел, так как не смотрел.
[15:03:03] <f[x]> gds: проглядел, не так надо
ocamlmklib -o mysql -oc mysql_stubs mysql_stubs.o mysql.cmo mysql.cmx -lz -lmysql
это сразу всё соберёт
[15:04:56] <gds> у меня уровень ненависти к OCamlMakefile слишком велик сейчас, чтобы разбираться, как его заставить это делать.
OCAMLLDFLAGS=-cclib -lmysql
и оно собирает cma/cmxa и линкует всё с этими опциями.  Однако вручную проверил,
ocamlopt -I . mysql.cmxa demo.ml -o demo.native
работает нормально.
Что делать будем?
[15:07:42] <f[x]> summary попавшихся косяков в текстовом виде (для вики) и твои изменения в репо (бранч?)
[15:08:02] <f[x]> по идее просто дописать -lmysql там где -lz в Makefile
[15:09:19] <f[x]> судя по интернетам, многие используют #include <mysql.h> - напрямую без каталога, с другой стороны многие из-за этого же и огребают проблем если в include/mysql имя файлов совпадает с чем-то распостранённым..
[15:32:11] <gds> насчёт -lz -- туда же не очень хочется (ибо оно прописывается аж в configure.in), OCAMLLDFLAGS вполне работает.
про include -- дописал в инструкцию скрипт, как получить из коннектора то, что нужно.  там обе гадости -- и include/mysql/*.h, и указание CPPPFLAGS, а всё потому, что в каком-то из my*.h есть указание #include <config-win.h>, которое без CPPFLAGS не ищется в include/mysql/.  уроды.
теперь интересно, как пушить на git.ocamlcore.org -- по ссылке http://git.ocamlcore.org/cgi-bin/gitweb.cgi?p=ocaml-mysql/ocaml-mysql.git;a=summary никаких инструкций, а где ещё искать -- не знаю.
[15:34:54] <gds> думается, проще передать патчи в приватном порядке.
[15:47:51] ermine немного поисследовала "рынок" ocaml bdb и пришла в уныние
[15:48:49] <valexey_> всё бы вам базы данных...
[15:49:10] <ermine> в готовом виде
[15:49:19] <Typhon> ermine: почему постгрес не хочешь?
[15:49:53] <ermine> Typhon: а зачем нужен целый сервер базы данных?
[15:50:23] <f[x]> gds на главное странице есть урл
[15:50:45] <valexey_> sqllite? ;-)
[15:51:28] <ermine> а зачем нужен sql?
[15:51:52] <valexey_> какие вы капризные...
[15:52:05] <valexey_> а зачем нужны данные?
[15:52:17] <f[x]> насчёт include пушнул
[16:16:24] <valexey_> а всякие циклы for и foreach -- это f# изобретение, или в камле тоже имеются?
[16:17:02] <sceptic> for есть
[16:17:03] <gds> +#include <my_global.h>
+#include <mysql.h>
ой-вэй.  а у меня заработало только так:
#if defined(_WIN32)
#include <winsock.h>
#endif
#include <mysql/mysql.h>
включение my_global.h вызывает облом с mode_t (писал утром)
[16:17:11] <gds> foreach -- изобретение f#
[16:17:32] <valexey_> а чем это лучше чем хффостовая рекурсия?
[16:19:10] <sceptic> быстрее?
[16:19:24] <valexey_> по идее -- одинаково.
[16:19:40] <sceptic> по идее над сложной рекурсией нужно больше думать, или я не прав?
[16:19:53] <valexey_> на этапе компиляции думать же
[16:19:56] <f[x]> my_global.h в мануале написано подключать..
[16:20:33] <sceptic> valexey_: на этапе написания же? или ты надеешься что всякая рекурсия за тебя станет хвостовой?
[16:20:44] <gds> угу, мануал читал.  значит будем, как в любых кроссплатформенных исходниках, делать внутри ifdef WIN32 ещё и ifndef MINGW какое-нибудь.
[16:20:46] <sceptic> *без тебя
[16:20:51] <f[x]> gds: с winsock.h на msvc не собирается!
[16:20:52] <valexey_> нет. я говорю про хвостовую рекурсию
[16:20:55] <valexey_> а не про произвольную :-)
[16:21:38] <f[x]> улюлю, да да да, ifdef наше всё, как я их всех люблю
[16:22:13] <gds> f[x]: а внутре msvc'шных .h есть где-нибудь определение mode_t?  интересно, где оно, чтобы сравнить.  Тут, как видел, конфликт.
[16:22:20] <f[x]> это же цирк
[16:22:26] <valexey_> а, имелось ввиду, что писать быстрее с фором нежели преобразовывать рекурсивный алгоритм к хвостовой рекурсии?
[16:22:39] <valexey_> т.е. быстрее тяп-ляпается? :-)
[16:27:11] <gds> не "быстрее тяп-ляпается", а "уменьшается дистанция между предметной областью и кодом".
[16:27:43] <gds> (кроме случаев, когда ключевой сущностью предметной области является хвостовая рекурсия)
[16:27:51] <f[x]> mode_t не определяется, а у chmod параметром сразу int
[16:28:27] <valexey_> а бывает предметная область когда ключевая сущность это именно цикл?
[16:28:36] <valexey_> и вообще, чем цикл от хвостовой рекурсии отличается? :-)
[16:28:51] <f[x]> valexey_: троллинг переехал в haskell@c.j.r
[16:29:00] <gds> f[x]: а в struct stat какой тип у поля st_mode?
[16:29:47] <valexey_> это не троллинг. просто в хвостовой рекурсии придется явно отделить инварианты цикла от изменяемой части. что, собственно, крайне рекомендуется делать и на чисто императивных языках.
[16:30:00] <gds> valexey_: бывают разные предметные области.  В том числе, где есть циклы for.
Цикл от хвостовой рекурсии отличается многими вещами.
[16:30:04] <valexey_> в тупо for провоцирует забить на это.
[16:30:14] <f[x]> unsigned int
[16:30:19] <f[x]> unsigned short
[16:30:28] <f[x]> последнее верно
[16:32:30] <gds> и хрен его знает, что делать, если культурно.
[16:38:48] <f[x]> ага, ещё один косяк, msvc не понимает inline, но его дефайнит my_global.h
[16:38:58] <f[x]> поэтому я его использовал и не замечал
[16:47:54] Kakadu вошёл(а) в комнату
[16:48:48] <sceptic> __forceinline
[16:53:32] <f[x]> цель в том чтобы убрать как можно больше ifdef'ов из кода
[16:56:03] <gds> учитывая всю няку-вкусняку, цель-минимум -- чтобы оно хотя бы работало :)
[16:58:03] <f[x]> и написать guide как это делать правильно
[16:59:38] <gds> а потом, как напишем, уже пора на пенсию будет.
думаю, подолбать, что ли, mingw-хлопцев, чтобы они вокруг typedef mode_t поставили #ifndef mode_t?
[17:00:19] <sceptic> так нельзя же
[17:03:59] <gds> а как обычно борют случаи, когда два независимых разработчика пишут typedef с одним именем?  должен остаться только один ведь.
[17:04:39] <sceptic> ммм только #define _что-то там
[17:05:31] <sceptic> по идее #define mode_t int и typedef int mode_t работает аналогично, однако простой пример показывает что typedef не совсем препроцессор.
#include <stdio.h>
typedef int hahaha;
int
main (int argc, char **argv)
{
#ifdef hahaha                                                                                                                                                                                                    
  printf ("hahahah");
#else
#endif
  return 0;
}
[17:06:56] <f[x]> typedef это не препроцессор конечно
[17:07:14] <f[x]> это mysql бага скорее, пусть у них голова болит
[17:16:26] iNode вышел(а) из комнаты
[17:26:20] <f[x]> а как представишь что ведь и кроме msvc/gcc есть ещё компиляторы на каких-то олдскульных юниксах, надеюсь я их никогда не увижу
[17:27:05] <valexey_> есть кошерный сановский цомпилятор
[17:27:29] <olegfink> от горечи такой пытались написать source-to-source трансформилку для си
[17:27:30] <olegfink> в стиле camlp4
[17:27:40] <sceptic> icc/sunc в обязательном порядке
[17:27:55] <olegfink> там в первую очередь у публики была мотивация научиться убирать compiler-specific код
[17:30:16] gds вышел(а) из комнаты
[17:31:36] <f[x]> olegfink: а как называлась?
[17:31:51] <f[x]> и дальше что делать с этим кодом - его же всё-таки компилировать надо
[17:33:18] <olegfink> http://pdos.csail.mit.edu/xoc/
[17:33:24] <f[x]> что значит "в обязательном порядке"? кто-то их тут исопльзует что-ли?
[17:33:25] <olegfink> ну так на выходе там всегда C99
[17:34:05] <olegfink> а на входе (из написанного) вроде gcc, kenc, alef-like
[17:34:09] <f[x]> о, russ cox, внушает
[17:35:09] <olegfink> любопытно, а чем именно?
[17:37:02] <olegfink> http://patch-tag.com/r/olegfink/xoc/snapshot/current/content/pretty/zeta/xoc/x/gnu_typeof.zeta -- вот для примера реврайт, реализующая typeof из gcc
[17:37:28] <olegfink> (т.е. он просто заменяет typeof(e) на тип e в коде)
[17:38:28] <f[x]> plan9, regexp'ы, go, блог
[17:40:05] <olegfink> собственно если посмотреть на alef_*.zeta, можно примерно понять, откуда у go (именно в смысле реализации) ноги растут
[17:40:20] Kakadu вышел(а) из комнаты
[17:49:07] sceptic вышел(а) из комнаты
[18:09:56] gds вошёл(а) в комнату
[18:15:11] <f[x]> gds: пушни свои изменения до собирабельного состояния
[18:26:06] Kakadu вошёл(а) в комнату
[18:55:36] Kakadu вышел(а) из комнаты
[19:33:45] Typhon вышел(а) из комнаты
[19:42:13] Kakadu вошёл(а) в комнату
[19:43:04] Kakadu вышел(а) из комнаты
[19:56:14] Kakadu вошёл(а) в комнату
[20:13:12] f[x] вышел(а) из комнаты
[20:34:29] valexey_ вышел(а) из комнаты
[20:39:26] Typhon вошёл(а) в комнату
[21:12:19] Kakadu вышел(а) из комнаты
[22:07:51] ygrek вошёл(а) в комнату
[22:08:05] ygrek вышел(а) из комнаты
[22:08:17] ygrek вошёл(а) в комнату
[22:08:32] <valexey> как однако jabber.org плющит...
[22:09:02] <valexey> причем почему-то именно с этой конфой.
[22:09:06] <valexey> с остальными всё ок.
[23:27:43] sceptic вошёл(а) в комнату
[23:44:38] <valexey> а что у камла с юникодом?
[23:47:47] <gds> полная ромашка у него с юникодом.  camomile брать надо.
[23:48:26] gds сейчас то не за компом, то в тупке; на выходных попробую запушить в ocaml-mysql
[23:49:07] <valexey> ясно.
[23:49:18] <valexey> у фшарпа небось с юникотом всё хорошо.
[23:49:32] <valexey> антиресно, как оно у ocamljava
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!