Home
Objective Caml
ocaml@conference.jabber.ru
Суббота, 24 июля 2010< ^ >
ygrek установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap | judge by commits, not comments | ocaml мёртв, move on
Конфигурация комнаты
Участники комнаты

GMT+4
[00:04:13] arhibot вышел(а) из комнаты
[00:27:10] iNode вошёл(а) в комнату
[00:43:54] ygrek вышел(а) из комнаты
[01:46:52] Typhon вышел(а) из комнаты: Replaced by new connection
[01:46:55] Typhon вошёл(а) в комнату
[02:11:08] Typhon вышел(а) из комнаты
[02:33:34] ermine вышел(а) из комнаты
[06:10:04] rexim вошёл(а) в комнату
[06:11:12] rexim вышел(а) из комнаты
[06:11:32] rexim вошёл(а) в комнату
[08:52:02] iNode вышел(а) из комнаты
[09:24:36] iNode вошёл(а) в комнату
[09:31:50] komar вышел(а) из комнаты
[10:14:34] ygrek вошёл(а) в комнату
[10:17:53] arhibot вошёл(а) в комнату
[10:44:57] arhibot вышел(а) из комнаты
[11:15:41] arhibot вошёл(а) в комнату
[11:16:20] arhibot вышел(а) из комнаты
[12:39:13] ermine вошёл(а) в комнату
[13:15:35] komar вошёл(а) в комнату
[15:20:56] crysis вошёл(а) в комнату
[15:24:45] crysis вышел(а) из комнаты
[17:17:09] iNode вышел(а) из комнаты
[18:11:25] zert вошёл(а) в комнату
[18:36:18] komar вышел(а) из комнаты
[19:10:05] komar вошёл(а) в комнату
[19:58:44] vshender вышел(а) из комнаты
[21:19:14] rexim вышел(а) из комнаты
[21:20:24] rexim вошёл(а) в комнату
[21:20:48] rexim вышел(а) из комнаты
[21:21:56] rexim вошёл(а) в комнату
[21:27:42] rexim вышел(а) из комнаты: Replaced by new connection
[22:12:28] <ermine> gds: а как из сишнего кода вернуть камлю абстрактный тип с фантомами?
[22:13:05] ermine только к вечеру смекнула, почему прога падает в корку
[22:13:08] <gds> тип не вернуть, значение можно вернуть только.
[22:13:53] <ermine> мне надо получить ([> `Int], [> `String]) t
[22:14:23] <gds> возвращай то же, что и для ('a, 'b) t, типизация идёт только на стороне окамла, а представление значений -- только на стороне цэ.
[22:14:25] <ermine> видимо через обертку придется делать
[22:15:24] <ermine> хотя может камлю пофигу какой фантом у t
[22:15:31] <gds> не "может", а "точно".
[22:16:23] <ermine> да, тут точно полезно вербализовываца
[22:16:30] <ermine> пасиб
[22:17:44] <gds> если это только фантомные типы.  Если же что-то другое делается со значениями, то надо думать.
Думать вот в какую сторону: что будет, если значение с типом (mytype1, mytype2) t, сформированное сишным кодом, получит другой сишный код, который про фантомные типы не знает, и принимает, допустим, ('a, 'b) t.
[22:18:25] <ermine> щас посмотрим, проглотит оно такое или нет
[22:19:01] <gds> в таком случае либо надо обеспечить, чтобы разные сишные функции кушали разные (mytype1, mytype2) t, либо чтобы в передаваемых value была какая-то информация о том, какие конкретно типы имеет значение.
[22:19:04] <ermine> там надо ('a, 'b) t -> ('c, 'd) t -> ('b, 'a) t если вкратце
[22:19:16] <ermine> не
[22:19:28] <ermine> последнее ('c, 'b) t
[22:21:37] <gds> ну смотри, вкратце описал, чо куда.  либо за фантомными типами следишь в окамле, либо в си, вот и думай.
[22:22:00] <ermine> не падает
[22:22:10] <gds> не аргумент, упадёт в будущем.
[22:22:22] <ermine> я просто вернула второй t как был
[22:22:49] <ermine> не упадет
[22:22:56] <ermine> там все вовсю юзается
[22:23:02] <gds> смотря что надо делать с этим всем.  может и упадёт.
[22:23:12] <gds> я же оптимист.  обязательно в будущем упадёт!
[22:23:51] <ygrek> сишный биндинг - конечно упадёт
[22:23:54] <ermine> по этим ('a, 'b) лишь типизируются аргументы, которые не t
[22:24:49] <ermine> я пока не нашла другого способа как можно ('a, 'b) t складывать в список, поэтому щас имею везде неудобства с необходимостью обертывать аргументы
[22:25:53] <ermine> поэтому 'a = [`String of string | `Int of int] и если подумать, то можно расширить до флоата, структур...
[22:26:28] <ermine> чтобы строки не надо было маршалировать, а структуры - автоматом маршалировать
[22:27:00] <ermine> вот инты маршалировать тоже не надо, если помнить про его тип
[23:50:12] arhibot вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!