... зависимостям проект на
не собрать. А ... обход, и для
поиском зависимостей...(read ...
Это вторая часть рассказа про компиляцию окамл, в которой, как в сказке - чем дальше, чем страшнее. Итак, мы с вами выяснили , что без топологической сортировки по зависимостям проект на ocaml не собрать. А чтобы эту сортировку выполнить, надо сначала вычислить, что от чего зависит. Казалось бы, раз компилятор в процессе компиляции обнаруживает все ссылки на другие модули, ему и карты в руки (см. "gcc -MM" или даже "ghc --make"). Но нет, нормальные герои всегда идут в обход, и для ocaml поиском зависимостей...(read more)
... и отстойного компилятора
с современными и ... плохо в компиляторе
(заодно пройдемся и ...
Сегодня я хочу прервать долгую тишину в эфире и написать объективное и непредвзятое сравнение отсталого и отстойного компилятора ocaml с современными и прогрессивными компиляторами для всех остальных языков. Что же плохо в компиляторе ocaml (заодно пройдемся и по интерпретатору)? Претензия номер раз : он не умеет компилировать проекты из нескольких файлов. Допустим, у нас есть foo.ml и bar.ml следующего содержания: foo.ml ====== let foo = 42;; bar.ml ====== let bar = Foo.foo + 1;; let () = Printf.printf...(read more)
Что делает холодным воскресным утром нормальный человек? Любой вам ответит: холодным воскресным ...
Что делает холодным воскресным утром нормальный человек? Любой вам ответит: холодным воскресным утром человек спит. Потому что всю неделю он работал и хочет отдохнуть.
Что делает холодным воскресным утром программист? Холодным воскресным утром программист пьёт горячий чай и пишет код. Чай он пьёт, потому что утро холодное, да и проснулся ещё не до конца, а код пишет, потому что хочется. Программисту всегда хочется писать код, только в будни он пишет код за деньги и от этого очень устаёт, а в выходные для себя, поэтому отдыхает.
Этим утром мы будем писать наше первое приложение для Ocsigen. Желающим неплохо бы сначала ознакомиться с официальным мануалом, впрочем, на многое надеяться не стоит, потому что мануал недописан, пестрит недоуменными строками а-ля "??????" и нецензурной речью на французском. Поэтому основным мануалом буду я.
Как вы возможно помните, когда-то мы писали интерпретатор языка Йоба. С тех пор интерпретатор был незначительно улучшен, выделен в отдельный класс, стал принимать строку на вход, отдавать строку на выход (вместо работы с консолью). Теперь нашей задачей станет
внедрение Йобы в качестве основного языка компании Google превращение интерпретатора Йобы в веб-приложение, да не простое — а клиентское. Хоть я и добавил в класс счётчик операций, чтобы нельзя было слишком обнаглеть, но всё равно — пусть пользователь на своём компьютере вычислительные мощности тратит, а не на сервере.
Поехали!
... -приложений на языке
, он включает в ... целиком написана на
, а работает целиком ...
Для тех, кто не знает: строго говоря, Ocsigen — это не совсем фреймворк. Ocsigen — это набор инструментов для создания эффективных веб-приложений на языке OCaml, он включает в себя как веб-сервер, так и инструменты для работы с потоками, написания расширений к веб-серверу, генерации HTML и многого другого. Кстати, замечу, что это может показаться невероятным (а кому-то может и не очень удобным), но генерируемый HTML5 или XHTML является статически типизированным, и валидность всего, что ваш сайт может сгенерить, будет проверена ещё на этапе компиляции.
Картинка для привлечения внимания — вращающаяся земля целиком написана на OCaml, а работает целиком в браузере.
Ну а вчера вышла новая версия этого замечательного фреймворка, и вот информация из анонса Винсента Балата (Vincent Balat):
Прочитать о ней
... много пишу на
. Не только на ... почти наверняка будет
. И по результатам ...
На своей нынешней работе я много пишу на OCaml. Не только на нем, но если это не SQL, и не простенькие скрипты, то это почти наверняка будет OCaml. И по результатам трех месяцев я решил сесть и записать свои негативные впечатления от, скажем так, перехода с Haskell. Про позитив писать особого смысла нет - ну, почитаете вы его, покиваете головой и все. А так, глядишь, кто чего посоветует :) В этот раз, думаю, у меня получится лучше, чем в прошлый . 1 Сигнатуры типов 1.1)Сигнатуры в .ml В Haskell можно...(read more)