Есть ли IDE для OCaml? (Закрыто: поставил Eclipse + OcaIDE)

agaaaa

Интересует подсветка кода, автодополнение, отладка, интеграция с компилятором.

karkar

OcaIDE (плагин для Eclipse). Есть и подсветка, и автокомплит, и показ выведенных типов при наведении мышью, и автоматическая сборка и многое другое.
Демонстрация некоторых возможностей:
http://ocaml.eclipse.ortsa.com:8480/ocaide/tutorials/2-disco...

agaaaa

Поставил качаться Eclipse...

karkar

Кажися, OcaIDE ставится сама по себе, без большого эклипса.

klyv

ага. и RCP ей не надо.

agaaaa

Скачанный с сайта jar не запускается даблкликом с ошибкой.
Я ставил как в туториале, через обновления Eclipse.
Сейчас следущая проблема (cygwin и OCaml стоят, в Eclipse пути настроены):
rm -Rf _build
mkdir _build
Solver failed:
Ocamlbuild knows of no rules that apply to a target named dtypes.
This can happen if you ask Ocamlbuild to build a target with the wrong extension
(e.g. .opt instead of .native) or if the source files live in directories
that have not been specified as include directories.
Backtrace:
- Failed to build the target dtypes
- Building dtypes

karkar

С такой ошибкой не сталкивался. Не пользуюсь cygwin'ом, возможно в этом разница.
В OcaIDE есть много способов собирать проекты - managed project, ocamlbuild, omake, makefile project etc.
Я в итоге остановился на варианте "OCaml Makefile Project", который использует OCamlMakeFile. Make у меня используется из MSYS. Остальные варианты или не заработали, или работали с глюками. Оcamlbuild требует bash, насколько я помню.

Marusetta

Попробуй Camelia - не фонтан, конечно, но вроде работает
Выглядит наподобие DrScheme

agaaaa

Да, я ставил баш. Посмотрю MSYS + OCaml makefile, спасибо.

agaaaa

Я в итоге остановился на варианте "OCaml Makefile Project", который использует OCamlMakeFile. Make у меня используется из MSYS. Остальные варианты или не заработали, или работали с глюками. Оcamlbuild требует bash, насколько я помню.
Где это можно выбрать?

karkar

При создании нового проекта. File -> New -> Project...

agaaaa

Попробуй Camelia - не фонтан, конечно, но вроде работаетВыглядит наподобие DrScheme
При попытке запуска не может найти одну из либ, хотя путь к либам вроде указан.

agaaaa

Как с ним работать?
В makefile в SOURCES пробовал написать *.ml
Автобилд не начался.
Как заставить Eclipse компилировать проект?

karkar

Вот пример makefiile'a из моего текущего проекта:
# see: http://www.ocaml.info/home/ocaml_sources.html#toc16

# put here the names of your source files (in the right order)
SOURCES = base.ml words.ml queries.ml main.ml

# the name of the resulting executable
RESULT = kwdb

# generate type information (.annot files)
ANNOTATE = yes
MSVC = true

OCAMLFLAGS = -I e:/ocaml/extlib
OCAMLLDFLAGS = -I e:/ocaml/extlib
LIBS = extlib

# make target (see manual) : byte-code, debug-code, native-code, ...
all: debug-code

include OCamlMakefile

Содержимое OCamlMakefile не трогаю. Если extlib не используешь, убери его упоминания.
Чтобы собрать проект, можно либо в окне Navigation сделать right click на папке проекта и выбрать "Make project", либо в меню Project выбрать Build all, либо просто Ctrl-B. Так соберется байткодовый вариант с отладочной информацией. Чтобы собрать нативный, нужно либо изменить makefile (предпоследняя строчка либо вызвать make с параметром "nc" (то же, что "native-code"). В результате сборки в данном случае получается kwdb.exe. Порядок перечисления исходников имеет значение. Если среди них есть mll и mly файлы, их и указываем, он сам поймет, что надо вызвать ocamllex и ocamlyacc.

agaaaa

Понял, что нет make. Поставил оный, теперь всё хорошо, всем спасибо!
Оставить комментарий
Имя или ник:
Комментарий: