nim-lang / Nim

Stato di compilazione

Questo repository contiene il compilatore Nim, lo stdlib di Nim, gli strumenti e la documentazione.Per ulteriori informazioni su Nim, inclusi download e documentazione per l’ultima versione, consulta il sito Web di Nim o i documenti bleeding edge.

Community

IRC chatUnire la Discordia serverUnire i Gitter chatOttenere aiutoVisualizza Nim post su Stack OverflowSegui @nim_lang su Twitter

  • forum – il posto migliore per porre domande e discutere di Nim.
  • #nim IRC Channel (Freenode)-un luogo per discutere Nim in tempo reale.Anche dove la maggior parte delle decisioni di sviluppo vengono prese.
  • Discordia – un ulteriore luogo per discutere Nim in tempo reale. La maggior parte dei canali sono collegati all’IRC.
  • Gitter – un luogo aggiuntivo per discutere Nim in tempo reale. Thereis un ponte tra Gitter e il canale IRC.
  • Telegram-un luogo aggiuntivo per discutere Nim in tempo reale. Thereis il canale ufficiale Telegram. Non collegato all’IRC.
  • Stack Overflow – un popolare sito Q / A per la programmazione relatedtopics che include post su Nim.
  • Github Wiki-Vari contenuti forniti dagli utenti.

Compilazione

Il compilatore attualmente supporta ufficialmente le seguenti combinazioni di piattaforme e architetture:

  • Windows (Windows XP o superiore) – x86 e x86_64
  • Linux (la maggior parte, se non tutte, le distribuzioni) – x86, x86_64, ppc64 e armv6l
  • Mac OS X (10.04 o superiore) – x86, x86_64 e ppc64

Più sono le piattaforme supportate, tuttavia, essi non sono testati regolarmente e theymay non essere stabile come sopra elencati piattaforme.

Compilare il compilatore Nim è abbastanza semplice se si seguono questi passaggi:

In primo luogo, il sorgente C di una versione precedente del compilatore Nim è necessario per avviare la versione più recente perché il compilatore Nim stesso è scritto nel linguaggio di programmazione theNim. Tali sorgenti C sono disponibili all’interno del repositorynim-lang/csources.

Successivamente, per costruire dal sorgente è necessario:

  • Un compilatore C comegcc 3.x / successivo o un’alternativa come clangVisual C++o Intel C++. Si consiglia di utilizzare gcc 3.x orlater.
  • Ogitowget per scaricare i repository di origine necessari.
  • Il pacchettobuild-essential quando si utilizzagcc su Ubuntu (e probabilmente anche altre distribuzioni).
  • Su Windows MinGW 4.3.0 (GCC 8.10) è il compilatore minimo consigliato.
  • Nim ospita una distribuzione MinGW funzionante nota:
    • MinGW32.7z
    • MinGW64.7z

Windows Nota: Cygwin e ambienti runtime POSIX simili non sono supportati.

Quindi, se si è su un sistema *nix o Windows, i seguenti passaggi dovrebbero essere compilati dal sorgente utilizzandogccgit e lo strumento di compilazionekoch.

Nota: I seguenti comandi sono per la versione di sviluppo del compilatore.Per la maggior parte degli utenti, è sufficiente installare l’ultima versione stabile. Controlla le istruzioni di installazione sul sito web per farlo: https://nim-lang.org/install.html.

Per i manutentori dei pacchetti: vedere le linee guida sugli imballaggi.

Per prima cosa, ottieni Nim da github:

git clone https://github.com/nim-lang/Nim.gitcd Nim

Avanti, eseguire le opportune costruire script di shell per la tua piattaforma:

  • build_all.sh (Linux, Mac)
  • build_all.bat (Windows)

Windows richiede un certo numero di altre dipendenze che potrebbe essere necessario installare includingPCRE e OpenSSL. Nim ospita un pacchetto zip contenente versioni di lavoro note delle DLL richieste qui.

Infine, una volta completati i passaggi di compilazione (su Windows, Mac o Linux), è necessario aggiungere la directorybin al PERCORSO.

Vedere anche ricostruzione del compilatore.

Koch

koch è lo strumento di compilazione utilizzato per costruire varie parti di Nim e per generatedocumentation e il sito web, tra le altre cose. Lo strumentokoch può anche essere utilizzato per eseguire la suite di test Nim.

Supponendo di aver aggiunto la directorybin di Nim al PERCORSO, è possibile eseguire i test utilizzando./koch tests. I test richiedono un po ‘ di tempo per essere eseguiti, ma è possibile eseguire un sottoinsieme di test specificando una categoria (ad esempio./koch tests cat async).

Per ulteriori informazioni sullo strumento di compilazione koch consultare la documentazione all’interno di doc / koch.primo file.

Nimble

nimble è il gestore di pacchetti di Nim. Per ulteriori informazioni, vedere il repositorynim-lang/nimble.

Contributors

Questo progetto esiste grazie a tutte le persone che contribuiscono.

Contribuendo

i Sostenitori sul Collettivo ApertoSponsor sul Collettivo ApertoInstallazione di un bounty via BountysourceDonazione BitcoinsOpen Source Aiutanti

si Veda il contributo di linee guida.Accogliamo con favore tutti i contributi a Nim indipendentemente da quanto siano piccoli o grandi. Tutto, dalle correzioni di ortografia ai nuovi moduli da includere nella libreria standard, è accolto e apprezzato. Prima di iniziare a contribuire,dovresti familiarizzare con la seguente struttura del repository:

  • bin/build/ – queste directory sono vuote, ma vengono utilizzate quando viene creato Nim.
  • compiler/ – il codice sorgente del compilatore. Include anche nimfix e plugin all’interno dicompiler/nimfix e compiler/plugins rispettivamente.
  • nimsuggest – lo strumento nimsuggest che in precedenza viveva nel repository nim-lang/nimsuggest.
  • config/ – la configurazione per il compilatore e il generatore di documentazione.
  • doc/ – i file di documentazione in formato reStructuredText.
  • lib/ – la libreria standard, tra cui:
    • pure/ – moduli nella libreria standard scritti in puro Nim.
    • impure/ – moduli nella libreria standard scritti in puro Nim con dipendenze scritte in altre lingue.
    • wrappers/ – moduli che racchiudono dipendenze scritte in altre lingue.
  • tests/ – contiene test classificati per il compilatore e la libreria standard.
  • tools/ – gli strumenti tra cui niminst enimweb(per lo più invocato tramite koch).
  • koch.nim – lo strumento utilizzato per avviare Nim, generare sorgenti C, creare il sito web e generare la documentazione.

Se non hai familiarità con la richiesta pull usando GitHub e / o git, leggi questa guida.

Idealmente, dovresti assicurarti che tutti i test passino prima di inviare una richiesta di pull.Tuttavia, se hai poco tempo, puoi semplicemente eseguire i test specifici per yourchanges eseguendo solo le corrispondenti categorie di test. Travis CI verifica che tutti i test passino prima di consentire l’accettazione della richiesta pull, quindi solo i test specifici dovrebbero essere innocui.I test di integrazione dovrebbero andare in tests/untestable.

Se siete alla ricerca di modi per contribuire, si prega di guardare il nostro problema tracker.Ci sono sempre molti problemi etichettati Easy; questi dovrebbero essere un buon punto di partenza per un primo contributo a Nim.

Puoi anche aiutare con lo sviluppo di Nim facendo donazioni. Le donazioni possono essere fatte utilizzando:

  • Open Collective
  • Bountysource
  • Bitcoin

Se avete domande non esitate a inviare una domanda sul forum theNim, o tramite IRC sul canale #nim.

Sostenitori

Grazie a tutti i nostri sostenitori!

Sponsor

Sostieni questo progetto diventando uno sponsor. Il tuo logo apparirà qui con un link al tuo sito web.

Si può anche visualizzare un elenco di tutti i nostri sponsor/finanziatori da vari servizi di pagamento sulla pagina degli sponsor del nostro sito web.

Licenza

Il compilatore e la libreria standard sono concessi in licenza sotto la licenza MIT, ad eccezione di alcuni moduli che dichiarano esplicitamente il contrario. Di conseguenza, è possibile utilizzare una licenza compatibile (essenzialmente qualsiasi licenza) per i propri programmi sviluppati con NIM. L’utente è esplicitamente autorizzato a sviluppare applicazioni commerciali utilizzando Nim.

Si prega di leggere la copia.file txt per maggiori dettagli.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.