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
- 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 come
gcc
3.x / successivo o un’alternativa comeclang
Visual C++
oIntel C++
. Si consiglia di utilizzaregcc
3.x orlater. - O
git
owget
per scaricare i repository di origine necessari. - Il pacchetto
build-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 utilizzandogcc
git
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
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
ecompiler/plugins
rispettivamente. -
nimsuggest
– lo strumento nimsuggest che in precedenza viveva nel repositorynim-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 cuiniminst
enimweb
(per lo più invocato tramitekoch
). -
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.