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

GMT+4
[00:56:42] Kakadu вышел(а) из комнаты
[01:31:43] Typhon вышел(а) из комнаты
[05:55:41] vshender вошёл(а) в комнату
[10:40:17] vshender вышел(а) из комнаты
[10:49:05] Kakadu вошёл(а) в комнату
[10:55:36] Typhon вошёл(а) в комнату
[10:57:28] <Kakadu> боянчик и оффтопчик, но ухахатайка: http://govnokod.ru/7097
[11:00:34] <Kakadu> да вот, что мне лучше сделать с патченной версией qtjambi, которую я юзаю для генерации xmlины? Можно пуллить к ним, а можно отбранчить...
[11:01:09] <Typhon> ну ты форкни, запуль, если это не ломает всё остальное
[11:01:30] <Typhon> если там патчи твои никак не уживаются, то бранчни гитца
[11:02:00] <Kakadu> вроде должны уживаться...
[11:04:09] <Kakadu> хотя тестировать, что код для java будет генериться корректно мне будет лень.
[11:06:39] <Kakadu> и ещё хз как фооркнуть на гитхаб проект с gitorious
[11:09:38] ermine вошёл(а) в комнату
[11:30:24] bobry вышел(а) из комнаты
[11:38:00] <gds> писал изначально в чятик, но много вышло.  Почитайте, посоветуйте, там про динамические типы, рассмотренные как зависимые типы: http://gdsfh.dreamwidth.org/10400.html
[11:42:08] Typhon вышел(а) из комнаты
[11:49:59] Typhon вошёл(а) в комнату
[11:50:34] klapaucius вошёл(а) в комнату
[11:59:54] komar вышел(а) из комнаты: Replaced by new connection
[11:59:54] komar вошёл(а) в комнату
[12:12:51] <gds> и, дабы дважды не вставать, вопрос.  как бы вы стали добавлять частичную типизацию в js?  ну, задача такая: есть код на js, хочется его протипизировать (что-то отредактировать или дописать), чтобы потом при его использовании проверялись утверждения, записанные в типах (достаточно несложной типизации, но с объектами).
[12:13:32] bobry- вошёл(а) в комнату
[12:16:26] <Typhon> если код уже есть — то тулзы, типа closure compiler
[12:22:21] ftrvxmtrx вышел(а) из комнаты
[12:22:31] ftrvxmtrx вошёл(а) в комнату
[12:26:12] <Typhon> gds: не понял, зачем тупл, передавать, у тебя же итак значение "знает" свой тип: x = "42"; typeof(x); "string". хотя там бедноватые типы, возможно, для целей нужных
[12:26:59] <Typhon> ну то есть, в общем, в динамических языках так и есть тупл — значение в рантайме свой тип всегда знает и по этому типу внутри функции можно диспатчить
[12:28:38] <Typhon> ну и соот-но ограничений на тупл (T:Type, x:T) не нужно, потому что значение типа T не имеющая "указателя" на тип T существовать не может, по идее
[12:30:00] <gds> Typhon: я рассмотрел такую схему, которая вполне могла бы быть статической (то есть, конкретное a имеет конкретный тип Ta, и функция работает для всех Ta:Type и для всех a:Ta).  В твоём случае x составлено из двух вещей: из типа (который достаётся через typeof) и из значения, зависящего от этого типа (строка, число, объект).  (я не говорю, что это хорошо или плохо -- я подсвечиваю разницу, чтобы её думать.)
[12:32:19] <gds> вот не знаю -- если функция возвращает значение с неизвестным типом (например, if random_bool() then 1 else "1"), то возвращается тот же тупл.
и да, для конструирования тупла надо как динамически-имеющееся указание на тип T, так и само значение.
[12:32:50] <gds> Typhon: closure compiler уже несколько раз советовали (ты, вроде, только второй раз) -- обязательно буду смотреть, что точно он делает, иначе несерьёзно как-то.
[12:58:32] <gds> посмотрел, как в closure compiler добавляют типы.  http://code.google.com/intl/ru/closure/compiler/docs/js-for-compiler.html -- не айс.
[12:58:43] <gds> но, всё же, полезно кое-где, и мне точно было полезно это узнать.
[13:11:31] ftrvxmtrx вышел(а) из комнаты
[13:11:57] ftrvxmtrx вошёл(а) в комнату
[14:23:06] zinid вошёл(а) в комнату
[14:52:10] vshender вошёл(а) в комнату
[14:56:26] <Typhon> http://truby.sourceforge.jp/  — внезапно нашлось такое
[14:56:30] <Typhon> тайпчекер для руби на окамле
[15:30:58] vshender вышел(а) из комнаты
[15:39:04] letrec вошёл(а) в комнату
[15:39:05] letrec вышел(а) из комнаты
[15:39:20] letrec вошёл(а) в комнату
[16:18:30] <gds> а есть ли парсеры js на окамле?
[16:27:37] <gds> какой-то http://aurochs.fr/ нашёлся, но грамматику js не дают сходу, хотя ссылаются.
[16:29:01] <Typhon> http://aurochs.fr/hgwebdir.cgi/aurochs/file/c136e55beed3/syntax/grammar.peg
[16:30:43] <f[x]> неплохо, интересно как оно в рантайме - не взрывается-ли
[16:32:37] <gds> Typhon: а это чья грамматика в этом файле -- его собственная?
[16:35:49] <Typhon> http://aurochs.fr/hgwebdir.cgi/aurochs/file/c136e55beed3/syntax/grammar.peg#l3 — ох, чота это не жаваскрипт, да :-(
[16:36:56] zinid вышел(а) из комнаты
[16:39:00] <f[x]> http://aurochs.fr/hgwebdir.cgi/aurochs/file/c136e55beed3/examples/ecma.peg
[16:39:15] <gds> я вот думаю, а не стоит ли вообще заморочиться штукой, которая будет по полному описанию грамматики как парсить её, так и печатать элементы взад?  Конечно, с хинтами а-ля "директивы модуля Format" (концептуально, а не буквально).  Парсить, в качестве proof of concept, хоть комбинаторами сраными.
[16:39:27] <f[x]> ecma.peg: A complete Javascript grammar, originally based on the grammar given
          in the ECMA language specification.  Updated version, used in
          http://jsure.org/
[16:39:40] <gds> ох ты, круто!
[16:39:48] <f[x]> гг, мечта мечта
[16:40:04] <gds> а что помешает?
[16:40:38] <f[x]> есть просто статья такая известная
[16:40:59] <gds> какая?
[16:42:09] <f[x]> http://lambda-the-ultimate.org/node/4150
[16:46:03] <gds> интересно, буду читать.
[16:53:30] <gds> f[x]: понятно, что наглею, но может помнишь, почему это "мечта"?  Папир почитаю (его же кто-то писал!), но всё же.
[16:54:07] <f[x]> это в папире тема такая - declarative syntax defintion - paradise lost (and regained)
[16:54:24] <f[x]> а так вполне себе достижимая мечта
[18:40:02] ftrvxmtrx вышел(а) из комнаты
[19:12:45] letrec вышел(а) из комнаты
[19:13:39] Typhon вышел(а) из комнаты
[19:26:20] shaggie вошёл(а) в комнату
[19:45:20] bobry- вышел(а) из комнаты
[20:49:55] ftrvxmtrx вошёл(а) в комнату
[21:45:50] ygrek вошёл(а) в комнату
[21:45:59] ygrek вышел(а) из комнаты
[21:46:24] ygrek вошёл(а) в комнату
[21:48:00] ygrek вышел(а) из комнаты
[21:48:22] ygrek вошёл(а) в комнату
[21:57:32] <gds> разобрался с макросами в revised syntax: тег camlp4rf вместо camlp4r, остальное -- как в бумажках написано.  Клёво.  Только непонятно одно: при компиляции
DEFINE III (x) = Printf.sprintf "int=%i (%s : %i)" x __FILE__ __LOCATION__;
value () = ( print_string (III 123) ; exit 1 );
мне возвращает ошибку
File "x.ml", line 2, characters 27-34:
Error: Unbound module Loc
ocamlc.opt returned with exit code 2
а хотелось бы ещё позицию видеть -- макросы, как-никак.
[21:59:13] <ygrek> open Camlp4.PreCast ?
[22:08:43] <gds> ygrek: "Error: Unbound module Camlp4"
[22:09:47] <gds> может надо ту хрень, которую с __LOCATION__, только через командную строку к camlp4rf определять, чтобы оно в camlp4 внутри тусовалось?  Но тогда не знаю, как через оазис/камлобилд это осуществить.
[22:21:43] ygrek вышел(а) из комнаты
[22:22:18] ygrek вошёл(а) в комнату
[22:24:33] bobry вошёл(а) в комнату
[22:38:59] shaggie вышел(а) из комнаты
[22:51:20] ftrvxmtrx вышел(а) из комнаты
[22:51:37] ygrek вышел(а) из комнаты
[22:52:38] ftrvxmtrx вошёл(а) в комнату
[23:00:25] bobry вышел(а) из комнаты
[23:03:31] bobry вошёл(а) в комнату
[23:24:37] <gds> отрепортил, #5352, пусть у них теперь голова болит.
[23:31:22] ftrvxmtrx вышел(а) из комнаты
[23:38:33] ermine вышел(а) из комнаты
[23:47:15] ygrek вошёл(а) в комнату
[23:48:30] <ygrek> не, просто тебе в рантайме нужен модуль Loc - либо сам определяй, либо линкуйся с camlp4lib и бери готовый
[23:55:45] <gds> ну, хотя бы, пусть они исправят документацию (из своего гугла!111  другой же нет).
[23:56:42] <gds> это момент "для красоты", поэтому правильным тут было бы напрячь разработчиков.  Не я один на эту "красоту" наткнусь.
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!