Este repositorio contiene el compilador NIM, el stdlib de NIM, las herramientas y la documentación. Para obtener más información sobre NIM, incluidas las descargas y la documentación para la última versión, consulte el sitio web de NIM o Bleeding Edge Docs.
El compilador actualmente admite oficialmente las siguientes combinaciones de plataforma y arquitectura:
| Sistema operativo | Arquitecturas compatibles con |
|---|---|
| Windows (Windows XP o mayor) | x86 y x86_64 |
| Linux (la mayoría de las distribuciones) | X86, X86_64, PPC64 y ARMV6L |
| Mac OS X (10.04 o más) | X86, X86_64, PPC64 y Apple Silicon (ARM64) |
Se admiten más plataformas, sin embargo, no se prueban regularmente y es posible que no sean tan estables como las plataformas anteriores.
Compilar el compilador NIM es bastante sencillo si sigue estos pasos:
Primero, se necesita la fuente C de una versión anterior del compilador NIM para arrañar la última versión porque el compilador NIM en sí está escrito en el lenguaje de programación NIM. Esas fuentes C están disponibles dentro del repositorio nim-lang/csources_v2 .
A continuación, para construir desde la fuente necesitará:
gcc 6.x/posterior o una alternativa como clang , Visual C++ o Intel C++ . Se recomienda usar gcc 6.x o posterior.git o wget para descargar los repositorios de origen necesarios.build-essential al usar gcc en Ubuntu (y probablemente otras distribuciones también).Nota de Windows: Cygwin y entornos de tiempo de ejecución POSIX similares no son compatibles.
Luego, si está en un sistema *nix o Windows, los siguientes pasos deben compilar NIM de la fuente usando gcc , git y la herramienta de compilación koch .
Nota: Los siguientes comandos son para la versión de desarrollo del compilador. Para la mayoría de los usuarios, la instalación de la última versión estable es suficiente. Consulte las instrucciones de instalación en el sitio web para hacerlo: https://nim-lang.org/install.html.
Para los mantenedores de paquetes: consulte las pautas de embalaje.
Primero, obtenga NIM de Github:
git clone https://github.com/nim-lang/Nim.git
cd Nim
A continuación, ejecute el script de shell de compilación apropiado para su plataforma:
build_all.sh (Linux, Mac)build_all.bat (Windows) Finalmente, una vez que haya terminado los pasos de compilación (en Windows, Mac o Linux), debe agregar el directorio bin a su ruta.
Ver también Bootstrapping el compilador.
Ver también construcciones reproducibles.
koch es la herramienta de compilación utilizada para construir varias partes de NIM y generar documentación y el sitio web, entre otras cosas. La herramienta koch también se puede usar para ejecutar la suite de prueba NIM.
Suponiendo que agregó el directorio bin de NIM a su ruta, puede ejecutar las pruebas usando ./koch tests . Las pruebas tardan un tiempo en ejecutarse, pero puede ejecutar un subconjunto de pruebas especificando una categoría (por ejemplo./Koch ./koch tests cat async ).
Para obtener más información sobre la herramienta de compilación koch , consulte la documentación dentro del archivo DOC/KOCH.MD.
nimble es el administrador de paquetes de NIM. Para obtener más información al respecto, vea el repositorio nim-lang/nimble .
Este proyecto existe gracias a todas las personas que contribuyen.
Ver pautas detalladas de contribución. Agradecemos todas las contribuciones a NIM independientemente de cuán pequeños o grandes sean. Todo, desde soluciones de ortografía hasta nuevos módulos que se incluirán en la biblioteca estándar, son bienvenidos y apreciados. Antes de comenzar a contribuir, debe familiarizarse con la siguiente estructura del repositorio:
bin/ , build/ - Estos directorios están vacíos, pero se usan cuando se construye NIM.compiler/ - El código fuente del compilador. También incluye complementos dentro compiler/plugins .nimsuggest : la herramienta Nimsuggest que anteriormente vivía en el repositorio nim-lang/nimsuggest .config/ - la configuración para el compilador y el generador de documentación.doc/ - Los archivos de documentación en formato reestructuredText.lib/ - la biblioteca estándar, que incluye:pure/ - en la biblioteca estándar escrita en puro nim.impure/ - en la biblioteca estándar escrita en puro NIM con dependencias escritas en otros idiomas.wrappers/ - módulos que envuelven dependencias escritas en otros idiomas.tests/ - contienen pruebas categorizadas para el compilador y la biblioteca estándar.tools/ - Las herramientas que incluyen niminst (principalmente invocada a través de koch ).koch.nim - La herramienta utilizada para arranque NIM, generar fuentes C, construir el sitio web y generar la documentación.Si no está familiarizado con hacer una solicitud de extracción con GitHub y/o GIT, lea esta guía.
Idealmente, debe asegurarse de que todas las pruebas pasen antes de enviar una solicitud de extracción. Sin embargo, si tiene poco tiempo, puede ejecutar las pruebas específicas de sus cambios solo ejecutando las categorías correspondientes de pruebas. CI verifica que todas las pruebas pasen antes de permitir que la solicitud de extracción sea aceptada, por lo que solo ejecutar pruebas específicas debe ser inofensiva. Las pruebas de integración deben ir en tests/untestable .
Si está buscando formas de contribuir, mire nuestro rastreador de problemas. Siempre hay muchos problemas etiquetados como Easy ; Estos deberían ser un buen punto de partida para una contribución inicial a NIM.
También puede ayudar con el desarrollo de NIM haciendo donaciones. Se pueden hacer donaciones usando:
Si tiene alguna pregunta, no dude en enviar una pregunta en el foro NIM o a través de IRC en el canal #NIM.
¡Gracias a todos nuestros patrocinadores! [Conviértete en un patrocinador]
Apoye este proyecto al convertirse en patrocinador. Su logotipo aparecerá aquí con un enlace a su sitio web. [Convertirse en patrocinador]
También puede ver una lista de todos nuestros patrocinadores/patrocinadores de varios servicios de pago en la página de patrocinadores de nuestro sitio web.
El compilador y la biblioteca estándar tienen licencia bajo la licencia MIT, a excepción de algunos módulos que indican explícitamente de otra manera. Como resultado, puede usar cualquier licencia compatible (esencialmente cualquier licencia) para sus propios programas desarrollados con NIM. Se le permite explícitamente desarrollar aplicaciones comerciales utilizando NIM.
Lea el archivo Coping.txt para obtener más detalles.
Copyright © 2006-2024 Andreas Rumpf, todos los derechos reservados.