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

GMT+4
[00:19:17] f[x] вошёл(а) в комнату
[00:35:40] Kakadu вышел(а) из комнаты
[01:07:44] Andrey Popp вышел(а) из комнаты
[01:08:05] Andrey Popp вошёл(а) в комнату
[01:08:36] <gds> подумалось про venv.  про то, что мы всё правильно делали.  пока venv создаётся исключительно в _dep, но ничего не мешает ровно таким же образом создавать его и в других местах.  из окружения, которое не дописывается, а перезаписывается, только неважное про ld.conf и важное указание "куда ставить новые пакеты".  то есть, всё делается весьма просто.  однако подумайте сами, вдруг я где-то ошибся.
[01:58:18] <gds> "
I tried to use Oasis on one of my projects. I got stuck at the very
begining. I am on MacOS, there is no binary installer, and no
instructions for MacOS users. It told me a bunch of dependencies were
unsatisfied when I tried to compile. It would be useful to write a
line or two about how to satisfy all the dependecies, for example:
"If you are compiling Oasis from source, it is easiest to satisfy all
the dependencies by installing them via GODI" (if that's even true).
Even better: provide a binary installer for MacOS.
"
будет весьма цинично писать ему что-то типа "подождите, мы тут свою ..аную ..ань выпустим и сделаем из оазиса то, что можно поставить".  да даже некультурно, легалл же старался.
[02:20:25] gds вышел(а) из комнаты
[03:01:11] f[x] вышел(а) из комнаты
[03:34:07] klapaucius вышел(а) из комнаты
[03:50:22] gds вошёл(а) в комнату
[04:57:31] letrec вошёл(а) в комнату
[05:10:08] <Andrey Popp> gds: почти про меня
[05:10:26] <gds> ага.  Да вообще, типичная проблема.
[05:10:36] <Andrey Popp> на самом деле, как я понял — нужно только findlib поставить, остальное потом через odb ставится
[05:20:10] <gds> findlib нужен, да, но и odb надо будет поставить.
[05:28:30] Andrey Popp вышел(а) из комнаты
[05:41:17] <gds> ан нет, говорят, что для odb достаточно ocaml+findlib.  я ошибался.
[06:10:07] ftrvxmtrx вышел(а) из комнаты
[06:37:22] <gds> провёл работу над todo + гуглодоком (там есть много "на обсуждение", давайте обсуждать, но у меня с графиком сна сейчас неидеально; однако навряд ли сегодня уже будет так, чтобы я не спал и при этом не отвечал более часа).
теперь даже до 1.0 есть что делать.  и без этих ваших фокусов, чисто "по делу".  как же я рад, что 1.0 будет максимально тупой и максимально рабочей, не представляете.
[06:38:25] <gds> а теперь -- за litpro.  я очень долго тупил там, но понял, что надо как-то двигать.  поднатужился, вроде пошло-поехало.  а там и итераты опишу клёво (только с вашим фидбеком).
[07:59:47] Typhon вышел(а) из комнаты: Replaced by new connection
[07:59:47] Typhon вошёл(а) в комнату
[08:07:37] Typhon вышел(а) из комнаты
[08:30:42] bobry по уши в рл, поэтом пока что барбара на вас, товарищи :)
[08:31:28] <gds> bobry: когда появишься по прогнозам?
[08:32:17] <bobry> думаю шо ближе к ночи
[09:07:32] <gds> f[x]: помнишь мою проблему про "./prog" vs "ocamlrun ./prog"?  мне тут гарриг посоветовал посмотреть head -1 prog.  наверное я нихрена не понимаю в жизни, но команда сборки была "ocamlfind ocamlc <куча .cmo> <какие-то -package> -o prog.byte", однако, что сцуко удивительно, head -1 показывает "ELF".  я вообще не очень разбираюсь в байткодах, но это какой-то странный байткод.  custom штоле?
[09:14:25] <gds> зато если его пострипать, получаем "No bytecode file specified.", что как бы подтверждает байткодовость.
[09:18:09] <gds> но строки "ocamlrun" в байткоде (который не-stripped) нет, что не даёт проверить гипотезу гаррига о разных ocamlrun.
[09:18:51] <gds> и в документации ничего не написано про то, что custom байткод не может быть исполнен через ocamlrun.
[09:23:45] <gds> собственно, варианта два: или я сказочный дебил (в том числе из-за кривого прочтения документации, или из-за чего похуже), или в документации ошибка.
[09:37:01] Typhon вошёл(а) в комнату
[10:27:05] ermine вошёл(а) в комнату
[11:06:12] Kakadu вошёл(а) в комнату
[11:10:54] <gds> продумал (более-менее) и дописал про venv'ы (в планах на 1.1, потому что вроде тупо делается).  поглядите там, если у кого моск работает.
[11:16:47] <ermine> воскресенье!!!
[11:17:12] <Kakadu> ermine: да-да, девочкам печенье
[11:17:26] ermine смотрит на синтаксис extend-блоков camlp4 и думает, не позаимствовать ли
[11:19:07] <ermine> ф = STRING; b = INT -> f a b
[11:20:13] <ermine> и не надо будет сомнительного PushDown алгоритма
[11:24:03] <Kakadu> твою дивизию, опять табы в емаксе, мля!
[11:25:00] <ermine> а как их получить?
[11:25:23] <Kakadu> я хочу их убрать. Они там по-дефолту
[11:25:31] <gds> Kakadu: да, я твои табы исправил.
[11:26:20] <ermine> наверное m-x custom-group tab....?
[11:27:31] <ermine> у, gds лазит своими руками из далекой молдавии в питерский комп какаду
[11:30:22] <ermine> не, нет такой группы настроек в емаксе
[11:30:48] <ermine> gds: а ты как и включаешь?
[11:30:59] <ermine> а, тьфу, мать вашу
[11:31:06] <Kakadu> http://www.gnu.org/s/libtool/manual/emacs/Just-Spaces.html#Just-Spaces вот что нагуглил, но пока не осилил
[11:31:10] <ermine> то про \t, а я думала про окошки
[11:32:09] <ermine> у меня они отключены
[11:34:34] <Kakadu> ура, я нагуглил
[11:34:41] <Kakadu> setq-default надо было
[11:37:09] <ermine> а у меня такого нет
[11:37:20] <ermine> у меня на таб просто повешено выравнивание
[11:37:26] <ermine> '(tab-always-indent t)
'(tab-width 2)
[11:44:22] <Kakadu> gds: насчет make all можно попробовать грепом достать все таргеты из Makefile
[11:51:27] <Kakadu> gds: насчет which: http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script
[12:00:18] Andrey Popp вошёл(а) в комнату
[12:42:22] <gds> > у, gds лазит своими руками из далекой молдавии в питерский комп какаду
достаточно пофиксить в репке пока что.  и только при многократных рецидивах можно думать об отрывании рук.
[12:43:07] <gds> Kakadu: grep Makefile -- плохая идея, не нравится.
[12:48:33] <gds> Kakadu: про which -- да, хреново дело.  но hash, type и что-то там ещё -- тоже кривые варианты, как я понял.
Видимо, или буду разбирать $PATH вручную (что плохо, так как падвендой надо будет проверять и .exe, например), либо по-тупому предусмотреть опцию, на которую программа должна выдать нормальный ответ, если она стоит.  Например, wget/curl даёт на --version, GET даёт на -v.  И прописать эту опцию в определялке.  Тут уж хрен поспоришь, что метод неидеален.  (один запуск программы не считаем, это мелочи.)
[12:50:39] <gds> а про табы в емаксе --
(global-set-key "\t" 'indent-relative-maybe)
(setq-default indent-tabs-mode nil)
[12:58:50] <gds> если чо, /me спатке на несколько часов, а то 23 часа бодрствования (и работы при этом) как-то слегка утомили.
у кого есть свободный моск и желание побарбрить, почитайте спеку в части "пожелания к будущим версиям" -- ну, там, комментируйте, исправляйте.
[13:23:26] <ermine> спокойной ночи
[13:23:59] ermine нашла в гугле новое слово "dependent parsing" и стала знакомиться с этим новым веянием
[13:26:45] Typhon вышел(а) из комнаты
[13:27:01] Typhon вошёл(а) в комнату
[13:49:05] f[x] вошёл(а) в комнату
[13:50:11] <f[x]> > по-тупому предусмотреть опцию, на которую программа должна выдать нормальный ответ, если она стоит
+1
[13:59:22] <ermine> нормальный ответ - как у команды true?
[14:23:29] ermine посмотрела на описание грамматики в dypgen
[14:23:48] <ermine> похоже, его автор тоже страдал мозговой мозолью
[14:28:35] <Kakadu> авторы двумерного синтаксиса страдли мозговой болью
[14:36:38] <ermine> Kakadu: а ты чем щас страдаешь?
[14:39:41] <Kakadu> переписываю thedeemonoвские комбинаторы на фадиез
[14:40:36] <ermine> ха
[14:40:52] <ermine> я с них тоже начинала, два года назад
[14:41:33] <ermine> там интереснее было додумать до dfa с массивами, но не осилила
[14:42:03] <Kakadu> ты читала про GLL парсинг?
[14:43:05] <ermine> неа, а такие есть?
[14:43:12] <Kakadu> угу
[14:43:18] <ermine> судя по названию, это top-down
[14:43:41] <ermine> там бяда с тем как передавать семантику в автоматическом режиме
[14:44:24] <ermine> вот прям щас у меня с этим бяда, из-за чего я ищу выразительный способ рисования грамматики
[14:44:54] <Kakadu> в каком смысле рисования?
[14:45:17] <ermine> ну как в yacc рисуют
[14:45:23] <ermine> как в dypgen нисуют
[14:45:35] <ermine> то на основе чего генерят потом код
[14:45:51] <Kakadu> можешь на наш ярд посмотреть
[14:46:32] <ermine> не код, а способ описания правил
[14:46:38] <Kakadu> дада
[14:46:45] <ermine> показывай
[14:46:48] <Kakadu> http://code.google.com/p/recursive-ascent/source/browse/MsSqlTest/MSSqlTest/yards/mssql0.yrd
[14:46:57] <Kakadu> тока там треш с табами
[14:47:01] <ermine> опять гугль
[14:47:29] <Kakadu> git clone https://kakadu.hafanana@code.google.com/p/recursive-ascent/
[14:47:31] <ermine> о, там видно
[14:47:53] <Kakadu> там самая вкусняшка это когда правилам передаются аргументами другие правила
[14:48:21] <ermine> осталось понять где что
[14:48:58] <Kakadu> list<<item sep>> :
    item (sep item)*
;
[14:49:05] <Kakadu> ну это правило для списка
[14:51:25] <ermine> Kakadu: не, вот такой пример: Space = " ", Word = [a-z]+, я хочу KeyWord = Word Space (т.е. после слова должен быть пробел обязательно), но хочу чтобы KeyWord имело значение того, что отматчилось в Word
[14:52:24] <ermine> в yacc для этого юзают пижонские значки $1, нумеруя токены
[14:52:31] shaggie вошёл(а) в комнату
[14:53:01] <Kakadu> KEYWORD:
   kw = WORD SPACE { kw }
;
[14:53:49] <Kakadu> KEYWORD:
   kw = (latter+) SPACE { kw }
;
[14:54:33] <ermine> в твоем случае будет многа лишней работы
[14:55:21] <ermine> например, в Space тоже будет значение " ", на это целая память и напрасный труд процессора по выдиранию подстроки, резервированию памяти и прочего бреда уйдет
[14:56:36] <ermine> сейчас у меня в текущей версии парсинга я выделяю угловыми скобками < > те токены, которые, если suceeded, то выдают область строки
[14:58:19] <ermine> а action { } могут встречаться в любом месте в предложении, это удобно при пуш алгоритме
[14:58:38] <ermine> но собираюсь отказаться от пуша
[15:03:31] <ermine> в общем знаков пунктуации на клаве маловато () {} [] <>
[15:04:17] <ermine> () для группирования, [] для классов символов, {} для actions, <> на все остальное
[15:35:03] <ermine> Kakadu: там в конце fukk_ident: ident (OPt ident)*, чему там full_ident будет равно?
[15:41:14] <Kakadu> тип какой? в смысле?
[15:41:42] <Kakadu> у * список наверное
[15:43:26] <ermine> и?
[15:44:12] <ermine> там нет action, поэтому есть куча значений в выражений
[15:44:19] <ermine> выражении
[15:45:16] <Kakadu> full_ident:
  ident { action} ( opt ident { action } ) * {action }
;
[15:49:04] <ermine> ужос
[15:50:40] <ermine> если action {}, то в результате unit?
[15:58:05] <Kakadu> ну если типы сойдутся
[16:42:17] Kakadu вышел(а) из комнаты
[16:48:07] Kakadu вошёл(а) в комнату
[17:59:25] shaggie вышел(а) из комнаты
[18:06:10] Andrey Popp вышел(а) из комнаты
[18:12:00] <gds> f[x]: а про "проверку наличия команды" -- хорошо, что проверил сначала.  GET {-v,-h} выдаёт код завершения 255.
как я понимаю, надо ловить чоткое 127 как признак отсутствия команды?
[18:18:40] <f[x]> это шелл возвращает же
[18:18:45] <f[x]> а если не всякий?
[18:20:24] <gds> логично, ща проверю.
[18:23:43] <gds> f[x]: то, что запускается через Unix.create_process, тоже возвращает 127.  ну не помню я, чтобы там где-то шелл запускали, именно в create_process.  и вот,
# cp ["nonono"; "-v"];
- : int = 9931
# waitpid [] 9931;
- : (int * Unix.process_status) = (9931, WEXITED 127)
[18:33:07] <f[x]> в unix по-моему явно в коде 127 возвращается
[18:45:12] <gds> f[x]: да, ты прав, явно прописано в коде.  Значит на это и буду полагаться.
[19:26:34] Typhon вышел(а) из комнаты: Replaced by new connection
[19:26:36] Typhon вошёл(а) в комнату
[19:27:39] <gds> f[x]: а есть идеи про http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/2011/12/18.html#09:07:32.58433 ?  как-то разбирались, да и ты эти байткоды лучше знаешь, как я понимаю.
[19:28:52] Andrey Popp вошёл(а) в комнату
[19:29:26] Typhon вышел(а) из комнаты
[19:30:04] <f[x]> gds: если ocamc и elf = то точно кастом
[19:30:47] <gds> и, если в доке не описано про то, что кастомные нельзя запускать через ocamlrun ./prog, то это бага доки?
[19:31:11] <f[x]> а про это я хз
[19:31:33] <f[x]> по идее не должно
[19:33:22] <gds> понял, отпишу гарригу "как знаю", поглядим.
[19:33:45] <Kakadu> я только что понял что 20е не в четверг а затра и надо срочно учиться
[19:35:44] <f[x]> > The "DBM" library (interface with Unix DBM key-value stores) is no
> longer part of this distribution.  It now lives its own life at
> https://forge.ocamlcore.org/projects/camldbm/.  Bye bye, DBM.
[19:36:06] <gds> да как они посмели!
[19:43:47] <f[x]> ы, и native codegen для mips убрали, я всё хотел хотел его посмотреть
[19:48:28] f[x] вышел(а) из комнаты: Replaced by new connection
[19:48:29] f[x] вошёл(а) в комнату
[19:55:27] <ermine> Kakadu: чему учиться надо?
[19:55:51] <Kakadu> надо заполнить бумагу о производственной практике и сдать во вторник
[19:55:58] <Kakadu> я то думал что 20е это четверг
[19:56:03] ermine считает, что 20-е еще не завтра, а чуть попозже
[19:56:48] <Kakadu> итак, сочиняем знания каких архитектур я получил на своей работе?
[19:57:40] ermine сегодня чуток трансформировала свою парсилку, приделала биндинг и собирается инкрементировать в развитии дальше
[19:58:00] <ermine> какой рульный проект - переписывать каждый день с нуля не надо
[20:01:06] <ermine> Kakadu: по архитектурам погугли, в принципе unix-like хватит, если вообще кто-то пионерские архитектуры считает архитектурами
[20:01:52] <ermine> только вот линукс - совсем не юникс
[20:02:47] <ermine> Kakadu: а по аналитике что напишешь?
[20:13:42] <Kakadu> по какой аналитике:
[20:13:46] Kakadu вышел(а) из комнаты
[20:14:01] Kakadu вошёл(а) в комнату
[20:14:18] <Kakadu> тьфу, что-то перглючило псю
[20:16:40] <ermine> Kakadu:  ты вроде недавно предлагал мне за тебя выучить архитектуру и аналитику
[20:19:53] <Kakadu> я не помню уже
[20:35:33] ermine начала избавляться от пуш алгоритма
[20:35:42] <ermine> в пуше надо слишком много ассертов
[20:35:53] <ermine> сасиод
[20:35:55] <f[x]> > Oh, my!  I go underwater for one week, first preparing a two-days training
> course then delivering it deep inside an Airbus factory (without Wifi of
> course so I had to read all that angst on my iPhone), and voila it's Arab
> spring on the caml-list :-)
[20:36:21] <f[x]> как там говорят - best comment EWA!!111
[20:36:28] <Kakadu> f[x]: лероя цитируешь?
[20:36:41] <f[x]> y
[20:37:35] <f[x]> второй абзац тоже зачётный
[20:39:05] <ermine> лечь на чугунное дно - нет места получше, где можно помечтать о следующей строчке кода
[20:39:36] <f[x]> да там всё письмо целиком epic
[20:40:22] <f[x]> > What's next, a live video feed from my bathroom?
[20:40:39] <ermine> скоро 2012, когда майя обещали конец света, а никто еще ничего сделать не успел
[20:41:37] <ermine> таки правда про чугунное дно
[20:41:58] <f[x]> > Likewise, for many years I've been looking for developers to work on the Windows port(s) of OCaml and never found any
хм!
[20:42:01] <f[x]> gds: ^^
[20:42:10] <f[x]> иди в виндомейнтейнеры
[20:43:27] <ermine> gds: продавайся лерою срочно
[20:44:02] <gds> про airbus недопонял/недоперевёл/ниасилил.
[20:45:01] <gds> f[x]: да как туда идти, если у них цыгвын там требуется в ридми.  а ридми фиксить -- это свЪтое.
[20:46:14] <gds> да и этот поцэнко там флюродросит так рьяно, что я там явно лишний.  не буду мешать орально-ональному счастью.
[20:46:37] <ermine> а еще придется учить французский и жрать лягушек
[20:48:03] <ermine> gds: а потом нас всех просто наймешь на работу
[20:48:44] <gds> ermine: думаешь, лерой заплатит хоть копейку за мейнтейнинг?  ололо
[20:49:31] <ermine> gds: ну жить-то на что-то надо!
[20:50:02] <ermine> бесплатные чародеи были только в конце прошлого века
[20:50:28] <ermine> я и сама в джаббере не найду давно бесплатных умов :(
[20:50:46] <ermine> чтобы поддерживать и развивать j.ru
[20:58:09] <f[x]> > если у них цыгвын там требуется в ридми
союираются же убирать
[21:30:59] Kakadu вышел(а) из комнаты
[21:34:54] Kakadu вошёл(а) в комнату
[21:58:20] f[x] вышел(а) из комнаты: Replaced by new connection
[21:58:21] f[x] вошёл(а) в комнату
[22:04:01] <gds> `hg diff -r 115:124 | wc -l` = 550.  неплохо за вчера-сегодня у меня вышло.  но это ещё не пердел!
[22:11:16] f[x] вышел(а) из комнаты: Replaced by new connection
[22:11:17] f[x] вошёл(а) в комнату
[23:06:21] <gds> ну всё, с точки зрения кодинга я вроде всё асилил.  давайте текущее todo обсуждать как-нибудь.
[23:07:38] Kakadu вышел(а) из комнаты
[23:09:17] Kakadu вошёл(а) в комнату
[23:19:22] <f[x]> > I am not impressed by the ability of the Caml community to do actual community work
SO F*CKIN' TRU
[23:24:44] <f[x]> > But it seems that the next version of OCaml will have runtime types
o_O
[23:24:51] <f[x]> круто если так
[23:59:24] Andrey Popp вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!