Il pollo è un programma gratuito e open source per il compilatore del linguaggio di programmazione Scheme. E 'compatibile con il sistema operativo Linux / UNIX.
Pollo produce efficiente e portatile C, e supporta molti standard del linguaggio Scheme corrente (vedere l'elenco sotto per i dettagli).
Esso fornisce out-of-the-box di supporto per SRFI 0 (cond-espansione), SRFI 1 (biblioteca List), SRFI 2 (e-lasciare *), SRFI 4 (omogenei tipi di dati vettoriali numerici), SRFI 6 (porti di stringa di base ), SRFI 8 (ricezione), SRFI 9 (Tipi di record), SRFI 10 (#, forma esterna), SRFI 13 (biblioteca String), SRFI 14 (biblioteca impostato Personaggio), SRFI 16 (caso-lambda), SRFI 17 ( set generalizzata!), SRFI 18 (Multithreading supporto), SRFI 23 (errore), SRFI 25 (primitive di array multidimensionali), SRFI 26 (taglio, carino), SRFI 28 (formato), SRFI 30 (Block commenti), SRFI 37 ( argomento programma di elaborazione), SRFI 38 (Rappresentanza esterna per i dati con struttura in comune), SRFI 39 (Parametri), SRFI 40 (biblioteca Stream), SRFI 42 (comprensioni Eager), SRFI 43 (biblioteca Vector) e SRFI 55 (richiede estensione ).
Cosa c'è di nuovo in questa versione:
- Questa versione include diversi di sicurezza e di crash importanti correzioni, dopo una recente baldoria bug-caccia dalle nostre hacker fondamentali.
Cosa c'è di nuovo nella versione 4.8.0.5:
- Questa versione include diversi di sicurezza e di crash importanti correzioni, dopo una recente baldoria bug-caccia dalle nostre hacker fondamentali.
Cosa c'è di nuovo nella versione 4.8.0.3:
- Questa release corregge principalmente un bug su Linux e Solaris che provoca elevato utilizzo della CPU durante l'attesa di processo secondario di I / O.
Cosa c'è di nuovo nella versione 4.8.0.2:
- Interprete:
- regressione Fix a, d per le procedure, che ha provocato un errore di sprintf.
- Compiler:
- Fix riscrittura di nuove righe (~~) in printf.
- Durata:
- Consenti & gt; 4GB mucchio su sistemi a 64 bit (# 974).
- Aggiunto libreria mancante (-lrt) su Solaris per le chiamate nanosleep (# 970).
- sistema di build:
- Test d'uso -f invece di prova -e in identify.sh per placare Solaris.
Cosa c'è di nuovo nella versione 4.8.0.1:
- correzioni di sicurezza:
- Usa POSIX poll () nei sistemi in cui sono disponibili. Ciò evita un difetto di progettazione a select (); supporta più di descrittori FD_SETSIZE.
- librerie di base:
- fissi EINTR gestione nel processo di attesa e durante la lettura da porti di file.
- Bugfix per irregex (# 686). Nota:. Sebbene irregex.scm ora dice la versione 0.9.2, la versione 0.8.3 è in realtà più un paio di patch backport
- Risolto un problema in "make-percorso" che ha restituito un percorso assoluto se dato un un parente, senza un argomento directory.
- Nei sistemi a 64 bit il "64 bit" caratteristica identificativo viene registrato.
- Compiler:
- Fixed vari bug nel database tipo.
- Bugfix e miglioramento della scrutatore.
- Nel flusso-analisi passa, tipo matching di combinazioni di "lista" / è stato reso più affidabile "lista-di" tipi.
- espansore Sintassi:
- Fai definisce macro-rinominato in cominciano corpi (moduli all'interno) visibile a forme successive. (# 944).
- Durata:
- fissi codice errato nella conversione discussione straniero per "unsigned-integer64" (# 955).
- strumenti fondamentali:
- Il percorso di runtime linker per eseguibili compilati non è stato impostato correttamente su sistemi FreeBSD.
- Fix install-estensione rottura quando il secondo arg contiene coppie (SRC DST).
- sistema di build:
- Prevenire la ricostruzione di buildversion.scm su ogni marca (1) su Windows.
Sistema
Cosa c'è di nuovo nella versione 4.8.0:
- Interfacce e funtori sono state aggiunte al sistema modulare.
- Il sistema tipo è stato esteso.
- Un gran numero di correzioni e pulizia generale sono state fatte nel compilatore, sistema runtime, librerie di base, e la sintassi di espansione.
Cosa c'è di nuovo nella versione 4.6.0:
- Alcune ottimizzazioni del compilatore sono state significativamente migliorate.
- diverse procedure di incasso e l'assegnazione procedure di elenchi, vettori e strutture generare codice più veloce.
- Unità SRFI-4 e SRFI-18 sono stati pesantemente ripulito e ottimizzato.
- Diversi bug sono stati risolti nella pianificazione dei thread.
- pollo-install è stato esteso, e il suo sostegno la compilazione incrociata è stato notevolmente migliorato.
- Il sistema di compilazione ora supporta più piattaforme e compilatori.
- sono stati revisionati i vari script di infrastrutture in modo da riflettere la struttura della nuova infrastruttura sito Web.
Cosa c'è di nuovo nella versione 4.4.0:
- il sistema può essere costruito con LLVM-GCC e / o "clang" (il compilatore LLVM C che non usa il frontend GNU C)
- ha aggiunto una nuova opzione `-trunk 'a` pollo-install', che le forze di costruire e installare la versione di sviluppo di estensioni in combinazione con `-t locale '
- ha aggiunto una nuova opzione `-deploy 'a` pollo-install', che costruisce l'estensione per l'uso in applicazioni "distribuite" (vedi sotto)
- aggiunto opzione `-deploy 'a` csc', il driver del compilatore. Con questa opzione `esc 'in grado di costruire applicazioni in bundle completamente indipendenti e applicazioni doppio cliccabile Macintosh GUI; vedere la "distribuzione" capitolo del manuale per ulteriori informazioni
- la directory dato alla 'opzione `pollo-install'` -prefix ora può essere un percorso relativo.
- rimosso libreria di runtime specifico per GUI (`libchicken-gui ') da Windows costruire
- GUI e non GUI ora utilizzano la stessa libreria di runtime
- forme speciali di interfaccia straniera funzioni sono state sostituite con una forma interna e la sintassi per consentire la ridenominazione e shadowing di queste forme
- il nuovo 'opzione `esc'` Privata-archivio compila eseguibili con il percorso di estensione repository impostata sulla directory da cui è stato avviato il programma
- `csc ': deprecato il` -W' e `-Windows 'opzioni, ha aggiunto` -gui' come una sostituzione indipendente dalla piattaforma
- `richiedere-estensione '/` utilizzo' ora accetta di importazione-specifiche
- definiti dall'utente estensione-progettisti e `set-extension-specifier! ' sono stati rimossi
- `delete-file [*] ',` rinominare-file', 'creare directory', `di copia dei file ',` file-move', `delete-directory 'e` cambio-directory' restituire loro argomento / filename destinazione sul successo
- aggiunto il procedimento mancante `condizione-nome-variabile 'alla SRFI-18 unità libreria (Grazie a Joerg Wittenberger)
- il `glob? ' Funzione dall'unità `regex 'è stato deprecato
- ha aggiunto la procedura di ` scansione-input-lines 'ai` utils' unità biblioteca
- ha aggiunto una nuova opzione di runtime `-: g ', che consente l'uscita di debug GC
- bonifica dei simboli utilizzati in modalità "simbolo-gc" (`-: w ') ora avviene solo per i simboli con una struttura in lista vuota li>
- su Windows caricamento di codice compilato con [non] librerie di runtime GUI avrà esito negativo e produrre un messaggio di errore quando il file eseguibile di carico è collegato con un sistema di runtime diverso
- su Windows, librerie GUI non erano collegate correttamente da `esc '
- Unità POSIX: setter aggiunto per `file-modifica-time '
- il banner mostra la branchname del costruire, a meno che non si tratta di "master"
- l'opzione 'a `pollo-install'` -no-installazione viene ignorata quando si costruisce / installazione dipendenze
- `pollo-disinstallare 'prende un glob invece di un'espressione regolare come argomento
- Rinomina e confrontare per basso livello macro-definizioni accettano ora arbitraria s-espressioni e rinomina / li confronta ricorsivamente
- `Number & gt; stringa 'gestisce negativi numeri con basi diverse da 10 correttamente (grazie a Peter Danenberg)
- rimosso deprecato `setup-install-flag 'e` setup-verbose-flag' dal modulo `setup-api '
- ha aggiunto una nuova opzione `-repository 'a` pollo-install' (Grazie a Christian Kellermann)
- rimosso programma stub `pollo-setup '
- fix a `csc 'utilizzare la libreria corretta al momento della fissazione percorsi di carico dinamico (Grazie a Derrell Piper)
- rimosso documentazione HTML dalla distribuzione (verrà ora installato il manuale di wiki)
- bug in `riesportazione 'che ha causato la sintassi non essere riesportato correttamente
- assegnazioni precedenti a una variabile di primo livello che sono separati da libere espressioni effetti collaterali vengono rimossi
- versione per Windows fissa del `trovare-files '(grazie a Jim Ursetto)
- documentazione per le estensioni non viene installato automaticamente da `pollo-install 'più
- cambiato versione binaria da "4" a "5", perché le nuove librerie di runtime non sono compatibili a livello binario con le versioni precedenti; questo significa che tutte le uova devono essere reinstallato e programmi esistenti essere ricompilato!
- aggiunto passaggio unboxing al compilatore che si traduce in miglioramenti delle prestazioni parzialmente drammatiche per il codice-intensive in virgola mobile non sicuri; unboxing è abilitato su livelli di ottimizzazione 4 e 5
- rimosso ottimizzazione resto-discussione-vettore come potrebbe entrare in conflitto con inlining (grazie a Sven Hartrumpf)
- ribattezzato `puntatore offset 'a` pointer +' e deprecato `puntatore-offset '
- assegnazioni toplevel che non hanno altri effetti possono essere eliminati se si può dimostrare che il valore non viene utilizzato (il compilatore genererà un avvertimento in questo caso)
- 'opzione `pollo' rimosso deprecato` -quiet programma
- rimosso deprecato tempo-run-macro dichiarazione `'
- rimosso deprecato `-v2 'e` -v3' opzioni nel programma `esc '
- rimosso deprecato `lista-delle 'funzioni (è disponibile esclusivamente come` lista-dei?' ora)
- rimosso `stat deprecato -... 'funzioni in un'unità libreria posix
- rimosso deprecato `per-ogni-line 'e` per-ogni-argv linea «procedure in utils unità libreria
- aggiunto `fpinteger? ' e `fpabs '
- deprecato `definire-sintassi compilato '
- aggiunto nuove primitive in virgola mobile `fpsin ',` fpcos', `fptan ',` fpasin', `fpacos ',` fpatan', `fpatan2 ',` fpexp', `fplog ',` fpexpt' e ` fpsqrt '
- pesante pulizia di galleggiare funzioni matematiche che offre prestazioni molto migliori, soprattutto per il codice compilato in modalità non sicura
- chiama `assert 'con un singolo argomento mostra l'espressione testato su fallimento
- varie correzioni di bug e per la bonifica
applicazioni
Funzioni
Cosa c'è di nuovo nella versione 4.2.0:
- pollo-installazione è stato modificato per risolvere dipendenze delle librerie in ordine topologico, e per cercare server alternativi se un server uovo risponde con un errore.
- Lo stack eseguibile in moduli di codice di assemblaggio è disabilitata di default.
- Molti bug sono stati corretti nella build MinGW.
- Diverse nuove opzioni sono state aggiunte al compilatore e interprete.
Cosa c'è di nuovo nella versione 3.4.0:
- Il compilatore supporta ora procedura selettiva di profilazione.
- Tutte le procedure relative ai file sono stati spostati in nuovi file di unità.
- Ci sono state numerose correzioni al Cygwin e MinGW costruisce.
- PCRE in bundle con il pollo è stato aggiornato.
I commenti non trovato