Home
Objective Caml
ocaml@conference.jabber.ru
Пятница, 13 января 2012< ^ >
f[x] установил(а) тему: 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:54:49] Andrey Popp вошёл(а) в комнату
[00:55:28] Andrey Popp вышел(а) из комнаты
[01:04:55] Kakadu вышел(а) из комнаты
[01:06:26] klapaucius вышел(а) из комнаты
[01:14:12] gds вышел(а) из комнаты
[01:50:42] Typhon вошёл(а) в комнату
[01:52:05] Typhon вышел(а) из комнаты: Replaced by new connection
[01:52:25] Typhon вошёл(а) в комнату
[01:55:30] Typhon вошёл(а) в комнату
[02:21:15] <bobry> может дописать в барбару source для oasis-db?
[02:33:16] bobry вышел(а) из комнаты
[02:34:02] bobry вошёл(а) в комнату
[02:55:13] bobry вошёл(а) в комнату
[03:10:47] ftrvxmtrx вышел(а) из комнаты
[03:10:58] ftrvxmtrx вошёл(а) в комнату
[03:12:38] bobry вышел(а) из комнаты
[03:13:24] bobry вошёл(а) в комнату
[03:22:33] Typhon вышел(а) из комнаты
[03:23:11] Typhon вошёл(а) в комнату
[03:41:02] Typhon вышел(а) из комнаты: Replaced by new connection
[03:41:04] Typhon вошёл(а) в комнату
[03:41:14] letrec вошёл(а) в комнату
[03:41:25] letrec вышел(а) из комнаты
[03:41:56] letrec вошёл(а) в комнату
[03:42:00] Typhon вышел(а) из комнаты: Replaced by new connection
[03:42:23] Typhon вошёл(а) в комнату
[04:25:29] f[x] вышел(а) из комнаты: Computer went to sleep
[04:43:39] Typhon вышел(а) из комнаты: Replaced by new connection
[04:43:59] Typhon вошёл(а) в комнату
[04:55:21] letrec вышел(а) из комнаты
[05:13:56] Typhon вышел(а) из комнаты
[05:14:23] Typhon вошёл(а) в комнату
[06:36:26] Typhon вышел(а) из комнаты
[06:36:47] Typhon вошёл(а) в комнату
[07:02:43] Typhon вышел(а) из комнаты
[07:31:16] Typhon вышел(а) из комнаты
[07:45:51] ermine вошёл(а) в комнату
[08:08:02] Typhon вошёл(а) в комнату
[09:22:56] dzhon вошёл(а) в комнату
[10:43:44] dzhon вышел(а) из комнаты: Replaced by new connection
[10:43:45] dzhon вошёл(а) в комнату
[11:03:17] bobry вошёл(а) в комнату
[11:21:46] Kakadu вошёл(а) в комнату
[12:10:42] klapaucius вошёл(а) в комнату
[12:18:48] dzhon вышел(а) из комнаты: Replaced by new connection
[12:18:50] dzhon вошёл(а) в комнату
[13:10:27] bobry вышел(а) из комнаты
[13:12:11] bobry вошёл(а) в комнату
[13:16:09] gds вошёл(а) в комнату
[13:51:39] dzhon вышел(а) из комнаты: Replaced by new connection
[13:51:42] dzhon вошёл(а) в комнату
[13:54:55] <gds> о, jane street додумались до явных указаний в обычно неявных частичных применений, назвали у себя staging.
[14:06:25] <Kakadu> что-то я никогда не видел синтаксиса типа
~escape_char:_
[14:07:20] <f[x]> '_'
[14:10:09] shaggie вошёл(а) в комнату
[14:10:15] <Kakadu> типа опечатка?
[14:13:04] <f[x]> блог кривой
[14:52:35] <bobry> про что вы?
[14:57:04] <gds> bobry: https://ocaml.janestreet.com/?q=node/103
[15:02:29] <bobry> а чего это у меня все сообщения по два раза?
[15:24:30] dzhon вышел(а) из комнаты: Replaced by new connection
[15:24:30] dzhon вошёл(а) в комнату
[15:27:49] <Kakadu> что-то камло привило мне статическую типизацию
[15:28:03] <Kakadu> я уже в шоке когда вижу что
[15:28:41] <Kakadu> есть параметр типа bool, и если он не указан, то дефолтное значение выбирается null, и потом встречается в коде как asdf != true
[15:29:41] <gds> ты ещё не видел pl/sql, где "if A then B else C end if" не равно "if not A then C else B end if".
[15:31:27] <Kakadu> то ли в фортране, то ли в PL1 можно было писать название индентификатора РАЗДЕЛЯЯ ЧАСТИ ИМЕНИ ПРОБЕЛАМИ. А компилятор автоматом это сливал в один идентификатор
[15:57:08] letrec вошёл(а) в комнату
[15:57:13] letrec вышел(а) из комнаты
[15:57:28] letrec вошёл(а) в комнату
[16:01:59] komar вышел(а) из комнаты
[16:04:19] komar вошёл(а) в комнату
[16:04:21] bobry вышел(а) из комнаты
[16:04:38] bobry вошёл(а) в комнату
[16:22:44] komar вышел(а) из комнаты
[16:27:43] komar вошёл(а) в комнату
[16:48:45] <letrec> а staging это общепринятый термин для этой техники?
[16:49:34] <Kakadu> не, вроде сами придумали
[16:51:18] <letrec> мы когда здесь это в последний раз обсуждали такой термин не всплывал
[16:58:00] dzhon вышел(а) из комнаты
[16:58:04] <gds> да, термина не было.  но обсуждали, почему и поднял тему.
[16:58:14] dzhon вошёл(а) в комнату
[17:00:40] <klapaucius> Kakadu: И в алголе 68 можно. Раньше вообще это считалось нормальным, что можно писать так, а не_так или вотТак.
[17:23:11] dzhon вышел(а) из комнаты
[17:41:58] <Kakadu> bobry: а ты amarao знаешь?
[17:42:47] <bobry> Kakadu: ага
[17:52:37] ad1862 вошёл(а) в комнату
[18:00:54] <f[x]> http://paste.in.ua/3657/
[18:01:26] <bobry> f[x]: что это ты такое парсишь?
[18:02:02] <f[x]> проверка заканичвается ли строка одним из данного списка суффиксом или нет
[18:05:29] <Kakadu> второе вроде круче
[18:05:44] <Kakadu> ваш кэп
[18:06:32] <gds> довёл апи предыдущей версии шелл-дсл ( http://paste.in.ua/3632/ ) до более гламурного, но, вроде, тоже реализуемого: http://paste.in.ua/3659/ .  Осталось довести type t = tval unit и будет полный гламур, но что-то останавливает.
[18:27:34] ftrvxmtrx вышел(а) из комнаты
[18:29:24] <f[x]> а если выбрать правильный режим для ragel -> http://paste.in.ua/3658/
[18:30:44] <Kakadu> а ты чем меряешь скорость?
[18:33:21] <f[x]> http://ygrek.org.ua/p/code/measure.ml.html
[18:38:54] ermine вышел(а) из комнаты
[19:08:08] Kakadu вышел(а) из комнаты
[19:08:58] bobry вышел(а) из комнаты
[19:39:25] <gds> интересно, какой из шеллов "самый стандартный"?  у меня man sh даёт манул на "dash", типа-стандартный шелл, но тоже с дополнениями.
[19:40:57] <f[x]> gds: man 1posix sh
[19:41:03] <f[x]> а dash это одна из реализаций
[19:41:31] <gds> "Нет справочной страницы для sh в разделе 1posix"
[19:42:03] <f[x]> manpages-posix
[19:42:54] <gds> круто, работает!
[19:43:58] <gds> f[x]: то есть, рекомендуешь смотреть на posix и надеяться, что все шеллы его поддерживают?
[19:44:15] <f[x]> ну есть понятие posix-conformant шелл
[19:44:32] <f[x]> насколько я понимаю - все вменяемые системы его поддерживают
[19:44:53] <gds> понял, идея очень грамотная, буду смотреть туда, а не в man dash.
[19:45:16] <f[x]> за рецептом для невменяемых - в autoconf - там куча вывихов для обхода изобретательных шеллов
[19:45:44] <gds> там я уже был, не понравилось :]
[19:46:59] <gds> а также вручную патчил configure для тупого bash/mingw, который внезапно именно под win7 зависает при некоторых операциях с пайпами.  вот там -- реальная красота.
[19:48:03] <f[x]> ага, помню ^_^
[19:54:01] <gds> смотрю в man 1posix sh и вижу фигу.  нет ни subshell (скобки), ни grouping (хотя пофиг на них, если есть subshell), ни описания раскрытия переменных $var, ни описания эскейпинга/кавычек.  странно это.
[19:54:42] <gds> с другой стороны, даже если компилировать всё в goto, что тоже приемлемо, не вижу их описания тоже.  и это тоже странно.
[19:55:41] <gds> также нет способа проверить результат выполнения команды, наподобие переменной $? либо способов cmd && on_success || on_failure.
[19:56:05] gds afk в роздумья
[19:57:44] komar вышел(а) из комнаты
[19:57:55] <f[x]> gds: похоже man не полный
[19:58:01] <f[x]> (он и не должен навреное быть)
[19:58:22] <f[x]> там есть отсылка к "Shell Command Language"
[19:58:26] <f[x]> http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
[19:59:30] <f[x]> из man'а :
EXTENDED DESCRIPTION
       See Shell Command Language . The following additional capabilities are supported on systems supporting the User Portability Utilities option.
[20:01:20] <f[x]> http://www.pixelbeat.org/programming/shell_script_mistakes.html
[20:02:42] <letrec> а зачем может понадобиться определять тип с модификаторм private в mli, если можно ограничится просто декларацией?
[20:03:23] <letrec> это не misuse фичи?
[20:03:43] <f[x]> letrec: т.е.?
[20:03:51] <f[x]> private же для этого и существует
[20:04:09] <letrec> например здесь http://forge.ocamlcore.org/scm/browser.php?group_id=222
[20:04:52] Kakadu вошёл(а) в комнату
[20:04:59] <letrec> нахуа там определение типа с приватом? если бы ограничились только декларацией эффект был бы другой?
[20:05:42] <letrec> т.е. написали бы тупо type 'a t
[20:08:41] <letrec> я бы понял, если бы в ml файле так можно было сделать и mli не писать руками, а всегда генерить
[20:08:58] <f[x]> letrec: ты знаешь что private делает?
[20:09:06] <f[x]> дай ссылку на код сразу
[20:09:51] <f[x]> я там что-то вообще private не вижу
[20:09:53] <letrec> интерфейс http://forge.ocamlcore.org/scm/browser.php?group_id=222
[20:09:59] <letrec> реализация http://forge.ocamlcore.org/scm/browser.php?group_id=222
[20:10:16] <f[x]> letrec: :)
[20:10:21] <f[x]> на урлы посмотри
[20:10:22] <letrec> упс
[20:10:26] <f[x]> там gitweb в фрейме
[20:10:58] <letrec> https://forge.ocamlcore.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=lablgtk-react/lablgtk-react.git;a=blob_plain;f=src/zipper/zipper.ml;hb=HEAD и https://forge.ocamlcore.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=lablgtk-react/lablgtk-react.git;a=blob;f=src/zipper/zipper.mli;h=1acb0dfec1ca12a91a26212fcbc28ff1aa7d973c;hb=HEAD
[20:11:35] <f[x]> letrec: ну, похоже на годное использование private
[20:12:07] <f[x]> private дайт что - снаружи модуля видно структуру типа, но создать значения этого типа извне модуля нельзя
[20:12:34] <f[x]> если написать декларацию без private - то можно было бы кому угодно создавать значения - нарушая инварианты модуля
[20:13:01] <letrec> понял
[20:14:27] <letrec> т.е. есть 2 аспекта: уметь создать значение и видеть структуру значения и их можно регулировать по отдельности
[20:14:49] <letrec> верно?
[20:15:36] <letrec> т.е. конструирование и деструктурирование?
[20:15:42] ad1862 вышел(а) из комнаты
[20:15:43] <f[x]> не совсем
[20:15:58] <f[x]> для того чтобы конструировать надо всегда видеть структуру
[20:16:05] <f[x]> т.е. три режима всего
[20:29:53] <letrec> иногда создаётся ощущение, что у окамла одна из самых развесистых систем типов
[20:30:08] <letrec> как GADT'ы добавят будет вообще пипец
[20:30:59] <f[x]> из ненаркоманских языков - да :)
[20:31:12] <f[x]> а так в ghc включить все расширения - мало не покажется :)
[20:36:26] <letrec> наркоманский это хаскель в исполнении ghc?
[20:37:56] <letrec> а помимо него?
[20:38:11] <f[x]> scala?
[20:38:37] <f[x]> всякие языки-параходы (теорем пруверы)
[20:39:19] <letrec> ну, теорем пруверы они же вроде не turing complete обычно
[20:39:36] <letrec> scala да, тоже жесть
[20:40:02] <letrec> где бы опердень на окамле посмотреть?
[20:42:14] <f[x]> ну я хз, всякие epigram'ы похожи на пруверы
[20:42:33] <f[x]> ещё эти с linear типами
[20:42:46] <f[x]> не помню примеров кроме ats
[21:22:50] <gds> f[x]: благодарю за ссылки.  В подробной спеке очень даже хорошо описано всё нужное.  Шелл получается не огрызком, а вполне нормальным, судя по спеке.
[21:25:56] f[x] вошёл(а) в комнату
[21:27:34] <gds> кстати вот, если брать системы типов, то, может, и развесистая.  А если брать в сумме и систему типов, и их семантику в применении к языку, то и сишечька, и плюсеки легко выходят в лидеры.  Плюсеки даже лидерастее получаются.
[21:30:55] <f[x]> чо чо?
[21:31:02] <f[x]> а вариантные типы?
[21:33:14] komar вошёл(а) в комнату
[21:56:17] <gds> вариантные типы относительно тупы в плане создания-разрушения, там правила простые.  Как "типы" они сложнее обычных sum types, заставляют иногда искать ошибки долго, но статически.  А вот про сишечьку -- классика http://kerneis.github.com/cil/doc/html/cil/cil016.html .  Про плюсы -- разве что C++FQA можно почитать.
[21:56:19] <gds> тьфуты
[21:56:44] <gds> ну понятно, думаю.
[22:04:25] letrec вышел(а) из комнаты
[22:39:05] <f[x]> а, ну если проводить спецолимипиаду по запутанности семантики :)
[22:39:39] <f[x]> вообще я мыслил вариантные типы = sum types
[22:58:32] shaggie вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!