Dune es un sistema de compilación para OCaml. Proporciona una experiencia consistente y se encarga de los detalles de bajo nivel de la compilación OCaml. Sólo necesitas proporcionar una descripción de tu proyecto y Dune hará el resto.
Dune implementa un esquema inspirado en el utilizado en Jane Street y adaptado al mundo del código abierto. Ha madurado durante mucho tiempo y cientos de desarrolladores lo utilizan a diario, lo que significa que está altamente probado y es productivo.
Dune viene con un manual. Si desea comenzar sin leer demasiado, consulte la guía de inicio rápido o mire este video de introducción.
El directorio de ejemplo contiene ejemplos de proyectos que utilizan Dune.
Dune lee los metadatos del proyecto de los archivos dune
, que son archivos estáticos con una sintaxis de expresión S simple. Utiliza esta información para configurar reglas de compilación, generar archivos de configuración para herramientas de desarrollo como Merlin, manejar la instalación, etc.
Dune en sí es rápido, tiene muy pocos gastos generales y admite compilaciones paralelas en todas las plataformas. No tiene dependencias del sistema. OCaml es todo lo que necesitas para crear Dune y paquetes usando Dune.
En particular, se puede instalar OCaml en Windows con un instalador binario y luego usar solo la consola de Windows para compilar Dune y paquetes usando Dune.
Dune es componible, lo que significa que se pueden organizar varios proyectos de Dune juntos, lo que lleva a una sola construcción que Dune sabe cómo ejecutar. Esto permite monorrepos de proyectos.
Dune hace que el desarrollo simultáneo de múltiples paquetes sea una tarea trivial.
Dune sabe cómo manejar repositorios que contienen varios paquetes. Al compilar mediante opam, puede utilizar correctamente las bibliotecas que se instalaron previamente, incluso si ya están presentes en el árbol de fuentes.
La invocación mágica es:
$ dune build --only-packages < package-name > @install
Dune puede crear un repositorio de código fuente determinado con varias configuraciones simultáneamente. Esto ayuda a mantener paquetes en varias versiones de OCaml, ya que puede probarlos todos a la vez sin problemas.
En particular, esto facilita el manejo de la compilación cruzada. Esta característica requiere opam.
Dune requiere OCaml versión 4.08.0 para compilarse y puede crear proyectos OCaml utilizando OCaml 4.02.3 o superior.
Recomendamos instalar Dune a través del administrador de paquetes opam:
$ opam install dune
Si es nuevo en opam, asegúrese de ejecutar eval $(opam config env)
para que dune
esté disponible en su PATH
. El binario dune
es autónomo y reubicable, por lo que puedes copiarlo de forma segura en otro lugar para que esté disponible permanentemente.
También puedes construirlo manualmente con:
$ make release
$ make install
Si no tienes make
, puedes hacer lo siguiente:
$ ocaml boot/bootstrap.ml
$ ./dune.exe build -p dune --profile dune-bootstrap
$ ./dune.exe install dune
El primer comando construye el binario dune.exe
. El segundo crea los archivos adicionales instalados por Dune, como las páginas de manual , y el último simplemente instala todo eso en el sistema.
Tenga en cuenta : a menos que haya ejecutado el script opcional ./configure
, puede simplemente copiar dune.exe
en cualquier lugar y simplemente funcionará. dune
es completamente reubicable y descubre su entorno en tiempo de ejecución en lugar de codificarlo en tiempo de compilación.
Si tiene preguntas o problemas sobre Dune, puede preguntar en nuestra página de discusiones de GitHub o abrir un ticket en GitHub.