Szczegóły programowe:
Gauche jest wdrożenie Schemat R5RS opracowany jako poręczne interpreter skryptów, które pozwala programistom i administratorom systemu napisać małych i dużych scenariuszy do swoich codziennych obowiązków. Szybkie uruchomienie, wbudowany interfejs systemu, natywne wsparcie wielojęzyczne są jednymi z moich celów.
Gauche aplikacja jest uruchomiona na kilka platform uniksowych.
Instalacja
% Gzcat Gauche-0.8.3.tgz | tar xf -
% Cd Gauche-0.8.3
% ./configure
% Zrobić
% Make install
Opis .
- Pokrowce R5RS, prawie
- R5RS makro jest obsługiwane wszystkie zdefiniować-składni, niech-składniowych, form letrec-składniowych. Myślę, że prędkość makr jest ważna jako interpreter skryptu, i napisał R5RS makro ekspandera w C, zintegrowany w silniku kompilatora.
- operacje numeryczne są obsługiwane na Fixnum, bignum, flonum i kompleksu.
- Obsługuje następujące SRFIs.
- System modułowy: prosty system moduł API zgodne z STklos
- System obiektu: Clos-jak układ obiektu z protokołem meta obiekt. Prawie API zgodne z STklos. To jest podobne do systemu obiektu Guile 's.
- Obsługa wielobajtowych ciąg: Struny są reprezentowane przez wielobajtową łańcucha wewnętrznie. Możesz użyć UTF-8, EUC-JP, Shift-JIS lub nie z wyboru kodowania skonfigurować wielobajtowej czasie. Konwersja między natywnym systemem kodowania i zewnętrznego systemu kodowania jest wspierany przez obiektów portowych.
- wielobajtowych regexp: Regularne matcher wyrażenie jest świadomy wielobajtową ciągu; można używać znaków wielobajtowych zarówno wzorów i dopasowanych ciągach.
- Czytnik rozszerzenie: dosłowne wyrażenie regularne i char-zestaw, interpolacja ciąg: Rozszerzony czytnik rozpoznaje # / ... / jako wyrażenie regularne, i # [...] jako zestawu znaków. Handy napisać jednej wkładki. (Np (rxmatch-podciąg (rxmatch # / (d +) / & quot; abc123def & quot;)) == & gt; & quot; 123 & quot;)
- Również & quot; interpolacji STRING & quot; jest obsługiwane (np (wyświetlacz # `& quot; 1 + 2 =, (+ 1 2) n & quot;)).
- System: Obejmuje większość POSIX.1 i innych cech wspólnych w Uniksach. Patrz punkt 6.19 w podręczniku referencyjnym w szczegóły.
- Interfejs sieciowy:. Posiada API dla gniazda interfejsu sieciowego opartego na tym IPv6, jeśli OS suppots go
- Wielowątkowość: Na niektórych platformach, wielowątkowość jest obsługiwany na górze pthreads. Schemat poziomu API zgodne Srfl-18.
- Interfejs DBM. Interfejs do bibliotek DBM-like (dBm, ndbm i / lub gdbm) jeśli system zapewnia im
- analizowania XML. Narzędzia SXML Oleg Kiselyov są włączone,
- wiążące OpenGL. OpenGL wiążąca jest w oddzielnym opakowaniu,
- GTK wiązania: wiązanie GTK2 jest w oddzielnym opakowaniu,
Interfejs
Co nowego w tym wydaniu:.
- Ta wersja rozwiązuje kilka problemów kompilacji
Co nowego w wersji 0.9.3:
- W tej wersji dodano wsparcie dla leniwych sekwencji, bez szwu integracja leniwy oceny z listy manipulacji.
- Tematy są obsługiwane na rodzimym kompilacji systemu Windows.
- Były różne poprawki i ulepszenia wydajności.
Co nowego w wersji 0.9.2:
- Różne drobne udoskonalenia i poprawki zostały dokonane w tym zwolnienie.
- Nowe funkcje obejmują obsługę Unicode przypadek mapowania narzędzie do wykonywania atomowej, wygodny narzędzie benchmarkingu oraz API publicznego dla procedur wytwórczych kod C.
- Instalator binarny system Windows teraz przychodzi jako plik MS instalatora, generowanego przez Wix.
Co nowego w wersji 0.9.1:
- Ta wersja dodaje wiele nowych funkcji, w tym: wydajne Zapisy, wzmocniony mechanizm moduł zmiany nazwy i poprzedzając, rozszerzone formale na opcjonalne i słów kluczowych argumentów, częściowych kontynuacje, basenów wątku, lepsze wsparcie Windows, JSON parsowania, Blowfish hasłem mieszania i więcej.
Co nowego w wersji 0.9:
- C API: Kilka niekompatybilne zmiany API C niekompatybilne zmiany wprowadzane są , które mogą powodować niektóre rozszerzenie nie skompilować. Zobacz zmiany API w 0,9 o szczegóły.
- Nowe funkcje:
- Nowy moduł: rfc.zlib. Zlib kompresji / dekompresji,
- Nowy moduł: rfc.sha: wsparcie SHA2. rfc.sha1 jest zastąpione przez ten moduł.
- Nowy moduł: util.sparse: Nieliczne wektory wspierane przez oszczędzającego miejsce trie i tablice haszowe realizowane na szczycie nielicznych wektorów. Są pamięci efektywne niż Builtin tabel hash kiedy chcesz zachować dziesiątki milionów wpisów.
- Autoprovide: Już nie musisz "zapewnić" formularz dla większości razy. Jeśli (wymaga & quot; X & quot;) z powodzeniem ładuje X.scm i nie mają formę dostarczenia, funkcji & quot; X & quot; jest dostarczany automatycznie. Zobacz & quot; Wymagaj i zapewniają & quot; punkt odniesienia dla więcej szczegółów.
- Moduł gauche.test: Poprawa testy wyjątki. Możesz teraz sprawdzić, czy specyficzny rodzaj stanu jest wyrzucane przez podanie (badanie stanu błędów typu), jak oczekiwanego rezultatu. Zobacz ręcznego wprowadzania więcej szczegółów.
- Moduł rfc.http: Teraz obsługuje proxy przez: proxy kluczowego argumentu. Można również łatwo skomponować application / x-www-form-urlencoded i komunikat wieloczęściowy / form-data, aby wysłać parametry formularza. Nowe procedury:. Http-http-put i usuwanie
- rfc.mime Moduł:. Dodano obsługę tworzenia wiadomości MIME
- gauche.threads modułu: Nowe procedury:. Wątek stop !, wątku cd !, wątku stan
- gauche.termios modułu: W systemie Windows natywnego wsparcia, moduł ten zapewnia konsoli Windows API zamiast POSIX termios API, ponieważ emulationg termios POSIX w systemie Windows jest zbyt wiele. Dodaje się również zestaw wspólnego wysokiego poziomu API, które mogą być używane zarówno POSIX i Windows.
- Moduł gauche.dictionary zapewnia dwukierunkową mapę.
- run-proces w module gauche.process, i Wbudowane sys-exec i sys-widelec-and-exec wsparcia:. Hasło katalog argument, aby określić katalog roboczy wykonywanego procesu
- Moduł file.util zapewnia tworzenie-katalog-tree i check-drzewa katalogów.
- Moduł gauche.net zapewnia operacji gniazd niskiego poziomu: Gniazdo sendmsg, Gniazdo buildmsg, i gniazdo-ioctl. Call-z-client-gniazdo ma nowych args słów kluczowych, aby określić tryb buforowania dla gniazda.
- Moduł www.cgi. Cgi-głównym przełącza tryb buforowania stderr do linii, tak aby dziennik httpd może rejestrować komunikaty o błędach linia po linii (o wiele mniej bałaganu niż wcześniej)
- Główne poprawki i ulepszenia:
- Poprawiono błąd w budowie na OSX 10.6 (Snow Leopard).
- Wydajność jest znacznie poprawiła się na liczbę zmiennoprzecinkową arytmetykę, opcjonalną obsługę wbudowanych procedur argument i orzecznictwem lambda.
- Teraz wszystkie znaki białych określone w R6RS pracuje jako intertoken spacji w kodzie źródłowym.
- wypisywany jest komunikat ostrzegawczy, gdy wątek kończy pracę z błędem i nie ma innego wątku odzyskać swój status poprzez wątku dołączyć! przed nić jest GC-ed. Pomaga to w rozwiązywaniu problemów. Ponieważ wątek dołącz! jest jedynym sposobem, aby wiedzieć, czy wątek exitted błędem, trzeba albo zadzwonić wątku dołączyć! aby upewnić się, aby sprawdzić stan lub napisać thunk wątek złapać wszystkie błędy i obsłużyć je prawidłowo.
- Anonymous Nazwa modułu jest #f teraz, zamiast (nieco arbitralnie) | # |.
- Niektóre akcesoria na symbole: "uninterned" SymbOS są oficjalnie wspierane (symbole generowane przez gensym zostały uninterned, ale nigdy nie zostały udokumentowane oficjalnie.) Symbole Uninterned są zapisywane jako #: symbol la CommonLisp. Symbole Uninterned nie są zarejestrowane do wewnętrznej tablicy symboli, więc nie martw się o nazwy katastrofie. Jedynym sposobem, aby odnieść się do tej samej uninterned symbol z więcej niż jednym miejscu w kodzie źródłowym jest użycie notacji 38-Srfl (# N = n # i #). Można tworzyć uninterned symbolu przez String & gt; uninterned symbol i sprawdzić, czy symbol jest internowany, czy nie, symbol-intened ?. Jest też nowa procedura, symbol-sans-prefix.
Co nowego w wersji 0.8.14:
- To jest wydaniem, w tym skumulowanych poprawek i wiele małych usprawnień.
- Część VM został przepisany w celu zwiększenia wydajności i łatwość konserwacji.
Komentarze nie znaleziono