Skip to content

Latest commit

 

History

History
85 lines (63 loc) · 3.65 KB

File metadata and controls

85 lines (63 loc) · 3.65 KB

Contribuisci a Zen C

Innanzitutto, grazie per aver preso in considerazione di contribuire a Zen C! Sono le persone come te che rendono grande questo progetto.

Accogliamo tutti i contributi, che siano fix di bug, miglioramenti alla documentazione, la proposta di nuove funzionalità, o semplicemente la segnalazione di problemi.

Come contribuire

Il flusso di lavoro generale per contribuire è:

  1. Forka la repository: Usa il workflow standard di GitHub per fare il fork della repository sul tuo account.
  2. Crea un Branch per la funzionalità: Crea un nuovo branch per la tua funzionalità o fix di bug. Questo mantiene le tue modifiche organizzate e separate dal branch principale.
    git checkout -b feature/NewThing
  3. Apporta Modifiche: Scrivi il tuo codice o le modifiche alla documentazione.
  4. Verifica: Assicurati che le tue modifiche funzionino come previsto e non rompano le funzionalità esistenti (vedi Eseguire i test).
  5. Crea una Pull Request: Pusha il tuo branch sul tuo fork e invia una Pull Request (PR) alla repository principale di Zen C.

Segnalazioni (Issues) e Richieste di Pull (Pull Requests)

Usiamo le GitHub Issues e le Pull Requests per tracciare bug e funzionalità. Per aiutarci a mantenere la qualità:

  • Usa i Modelli: Quando apri una Issue o una PR, usa i modelli forniti.
    • Segnalazione Bug: Per segnalare errori.
    • Richiesta Funzionalità: Per suggerire nuove funzionalità.
    • Richiesta di Pull: Per inviare modifiche al codice.
  • Sii Descrittivo: Fornire quanti più dettagli possibile.
    • Controlli Automatici: Abbiamo un flusso di lavoro automatizzato che controlla la lunghezza della descrizione delle nuove Issues e PR. Se la descrizione è troppo breve (< 50 caratteri), verrà chiusa automaticamente. Questo serve per assicurarci di avere abbastanza informazioni per aiutarti.

Guide Linea per il Sviluppo

Stile del Codice

  • Segui lo stile C esistente trovato nel codebase. La coerenza è fondamentale.
  • Puoi usare il file .clang-format fornito per formattare il tuo codice.
  • Mantieni il codice pulito e leggibile.

Struttura del Progetto

Se stai cercando di estendere il compilatore, ecco una mappa rapida del codebase:

  • Parser: src/parser/ - Contiene l'implementazione del parser a discesa ricorsiva.
  • Codegen: src/codegen/ - Contiene la logica del transpiler che converte Zen C a GNU C/C11.
  • Standard Library: std/ - I moduli della libreria standard, scritti nello stesso Zen C.

Eseguire i test

La suite di test è il tuo miglior amico durante lo sviluppo. Assicurati che passino tutti i test prima di inviare una PR.

Esegui tutti i test

Per eseguire l'intera suite di test usando il compilatore predefinito (solitamente GCC):

make test

Esegui test specifici

Per eseguire un singolo file di test per risparmiare tempo durante lo sviluppo:

./zc run tests/test_match.zc

Test con Backend Differenti

Zen C supporta diversi compilatori C come backend. Puoi eseguire i test specificamente contro di essi:

Clang:

./tests/run_tests.sh --cc clang

Zig (cc):

./tests/run_tests.sh --cc zig

TCC (Tiny C Compiler):

./tests/run_tests.sh --cc tcc

Processo di Pull Request

  1. Assicurati di aver aggiunto test per qualsiasi nuova funzionalità.
  2. Assicurati che tutti i test esistenti passino.
  3. Aggiorna la documentazione (file Markdown in docs/, translations/ o README.md) se appropriato.
  4. Descrivi chiaramente le tue modifiche nella descrizione della PR. Linka qualsiasi issue correlata.

Grazie per il tuo contributo!