Gauche este un sistem de punere în aplicare R5RS dezvoltat pentru a fi un interpret script la îndemână, care permite programatorilor si administratorilor de sistem să scrie mici pentru a script-uri mari pentru treburile de zi cu zi. Pornire rapidă, interfața sistemului de built-in, suport multilingv nativ sunt unele dintre obiectivele mele.
Aplicație Gauche rulează pe mai multe platforme Unix-like.
Instalare
% Gzcat Gauche-0.8.3.tgz | tar xf -
% Cd Gauche-0.8.3
% ./configure
Marca%
% Make install
Caracteristici :.
- Huse R5RS, aproape
- R5RS macro este susținută ca toate definesc-sintaxă, lasa-sintaxă, forme letrec-sintaxă. Cred ca viteza de expansiune macro este important ca un interpret scenariu, și a scris R5RS expander macro în C, integrat în motorul compilator intern.
- operațiuni numerice sunt sprijinite pe fixnum, bignum, flonum și complex.
- sprijină următoarele SRFIs.
- sistem Modulul: un sistem modul simplu, API compatibil pentru STklos
- sistem Obiect: Sistem obiect CLOS cum ar fi cu protocolul metaobject. Aproape API compatibil cu STklos. De asemenea, este similar cu sistemul de obiect viclenie e.
- suport șir Multibyte: stringuri sunt reprezentate de msgstr intern. Puteți folosi UTF-8, EUC-JP, Shift-JIS sau nu caractere multioctet de alegere configura-time. Conversia între sistemul de codificare nativ și sistem de codificare extern este susținută de obiecte de port.
- Multibyte regexp: matcher expresie regulată este conștient de msgstr; puteți utiliza caractere multioctet, atât în modele și șiruri potrivite.
- Reader extensie: regexp literal și char-set, string interpolare: cititor Extinsa recunoaște # / ... / ca o expresie regulată, iar # [...] ca un set de caractere. Handy a scrie-unul garnituri. (De exemplu, (rxmatch-subșir (rxmatch # / (d +) / & quot; abc123def & quot;)) == & gt; & quot; 123 & quot;)
- De asemenea & quot; string interpolare & quot; este susținută (de exemplu, (afișare # `& quot; 1 + 2 =, (+ 1 2) n & quot;)).
- Sistem: Capace de cele mai multe POSIX.1 și alte câteva caracteristici comune în Unices. Vezi secțiunea 6,19 de manualul de referință pentru detalii.
- interfață de rețea:. Are API pentru interfața de rețea bazată pe soclu, inclusiv IPv6 în cazul în care sistemul de operare se suppots
- Multithreading: Pe unele platforme, multithreading este susținută pe partea de sus a pthreads. Schema de nivel API este conformă Srfl-18.
- interfață DBM:. Interfață la biblioteci, cum ar fi DBM (dBm, ndbm și / sau GDBM), în cazul în care sistemul le oferă
- parsare XML:. Sunt incluse instrumente SXML Oleg Kisseleff lui
- OpenGL obligatoriu:. OpenGL de legare este prevăzut într-un pachet separat,
- GTK obligatoriu: GTK2 Legarea este prevăzut într-un pachet separat,
Interfață
Ce este nou în această versiune:.
- Această versiune rezolvă câteva probleme construi
Ce este nou în versiunea 0.9.3:
- Această versiune adaugă suport pentru secvențe leneș, o fără sudură integrarea evaluare leneș cu manipularea listă.
- Fire sunt acceptate pe a construi nativ pentru Windows.
- Nu au rezolvări ale unor probleme și îmbunătățiri de performanță diferite.
Ce este nou în versiunea 0.9.2:
- Diverse îmbunătățiri ale caracteristicilor minore și rezolvări ale unor probleme s-au făcut în această eliberare.
- Noile caracteristici includ Unicode suport caz-mapping, un utilitar pentru execuție atomic, un utilitar convenabil benchmarking, și un API public rutine de generare de cod C.
- instalare binar pentru Windows acum vine ca un fișier MS instalare, generat de Wix.
Ce este nou în versiunea 0.9.1:
- Această versiune adaugă multe caracteristici noi, inclusiv: eficient înregistrări, un mecanism modul consolidat cu redenumirea și prefixare, formals acordate de argumente opționale și cuvinte cheie, continuări parțiale, piscine fir de sprijin, mai bine pentru Windows, JSON parsing, hash parola Blowfish, și mai mult.
Ce este nou în versiunea 0,9:
- C API modificări incompatibile: sunt introduse mai multe modificări incompatibile C API , ceea ce poate provoca unele extindere a nu compila. Vezi API Modificările 0,9 pentru detalii.
- Caracteristici noi:
- Noul modul de: rfc.zlib:. Zlib compresie / decompresie
- modul nou: rfc.sha: suport SHA2. rfc.sha1 este înlocuită prin acest modul.
- Noul modul de: util.sparse: vectori Sparse susținută de eficiente din punct de spațiu trie, și hash-mese puse în aplicare pe partea de sus a vectorilor rare. Acestea sunt memorie eficiente decât tabelele hash interne si atunci când doriți să păstrați zeci de milioane de înregistrări.
- Autoprovide: Nu mai este nevoie "prevăd" formă de cele mai multe ori. În cazul în care (necesita & quot; X & quot;) încarcă cu succes X.scm și nu are o formă furnizează, funcția & quot; X & quot; este prevăzut în mod automat. Vezi & quot; este necesar și oferi & quot; secțiune de referință pentru mai multe detalii.
- Modul gauche.test: testarea îmbunătățită excepții. Puteți testa acum dacă un anumit tip de afecțiune este aruncată prin acordarea (testul-eroare condiție de tip), ca rezultatul așteptat. Vezi intrarea manual pentru mai multe detalii.
- Modul rfc.http: Acum se ocupă de proxy de: argumentul proxy cuvinte cheie. De asemenea, puteți compune cu ușurință aplicație / x-www-form-urlencoded și mesaj multipart / form-data pentru a trimite parametrii formular. Noi proceduri:. Http-a pus și http-șterge
- Modul rfc.mime:. Adăugat suport de compuneți un mesaj MIME
- gauche.threads module: Noi proceduri:. Fir-stop !,-fir cont !, fir-stat
- gauche.termios module: Pe suport nativ pentru Windows, acest modul oferă Console pentru Windows API în loc de POSIX termios API, deoarece emulationg termios POSIX pe Windows este prea mult. De asemenea, a adăugat o serie de comun API la nivel înalt, care poate fi folosit atât pe POSIX și Windows.
- Module gauche.dictionary oferă o hartă bidirecțională,.
- rula-proces în modul gauche.process, și builtin sys EXEC-și sys-furculiță-și EXEC-suport:. Argument director cuvinte cheie pentru a specifica directorul de lucru al procesului de executat
- Modul file.util oferă crea-director-tree și check-director-tree.
- Modul gauche.net oferă operații soclu low-level: soclu-sendmsg, socket-buildmsg, și soclu-ioctl. Call-cu-client-socket ia noi args cuvinte cheie pentru a specifica modul de tamponare pentru priza.
- Modul www.cgi:. CGI-principal comută în modul de tamponare a stderr la linia, astfel încât jurnalul httpd poate înregistra mesaje de eroare-line de linie (mult mai puțin decât înainte dezordine)
- remedieri majore și îmbunătățiri:
- problemă construi fixe pe OSX 10.6 (Snow Leopard).
- Performanța este mult îmbunătățită pe aritmetica punct de număr, manipularea argument opțional procedurilor builtin, și caz-lambda plutitoare.
- Acum toate personajele spații albe definite în R6RS functioneaza spații intertoken în codul sursă.
- Un mesaj de avertizare este tipărit atunci când un fir iese cu o eroare și nici un alt fir prelua statutul de fir-se alăture! înainte firul este GC-ed. Acest lucru ajută depanare. Deoarece fir-se alăture! este singura modalitate de a ști dacă firul exitted de o eroare, trebuie fie să sunați fir-join! să vă asigurați că pentru a verifica starea, sau pentru a scrie thunk fir pentru a prinde toate erorile și să gestioneze în mod corespunzător le.
- Anonim numele modul este #f acum, în loc de (oarecum alese arbitrar) | # |.
- Unele accesorii pe simbolurile: "uninterned" symbos sunt acceptate oficial (simboluri generate de gensym au fost uninterned, dar niciodată nu a fost documentată în mod oficial.) Simbolurile Uninterned sunt scrise ca #: simbol a la CommonLisp. Simbolurile Uninterned nu sunt înregistrate la tabela de simboluri intern, deci nu e nici o vă faceți griji despre nume accident. Singura modalitate de a se referi la același simbol uninterned de la mai mult de un loc în codul sursă este de a utiliza Srfl-38 notație (# n = și # n #). Puteți crea simbol uninterned de string- & gt; uninterned-simbol și verifică dacă un simbol este internat sau nu de-simbol intened ?. Există, de asemenea, o procedură nouă, simbol-sans-prefix.
Ce este nou în versiunea 0.8.14:
- Aceasta este o versiune de întreținere, inclusiv rezolvări ale unor probleme cumulative și numeroase îmbunătățiri mici.
- Partea a VM a fost rescris pentru o performanță mai bună și mentenabilitatea.
Comentariile nu a fost găsit