Gauche é uma implementação Scheme R5RS desenvolvido para ser um intérprete certificado acessível, que permite aos programadores e administradores de sistema para escrever pequenas a grandes roteiros para suas tarefas diárias. Inicialização rápida, built-in interface do sistema, suporte multilíngue nativo são alguns dos meus objetivos.
Aplicação Gauche é executado em várias plataformas Unix-like.
Instalação
% Gzcat Gauche-0.8.3.tgz | tar xf -
% Cd Gauche-0.8.3
% ./configure
% Make
% Make install
Características :.
- Covers R5RS, quase
- R5RS macro é suportado como todos definir-sintaxe, deixe-sintaxe, formas letrec-sintaxe. Eu acho que a velocidade de expansão de macro é importante como um interpretador de script, e escreveu R5RS macro expansor em C, integrado no motor interno do compilador.
- operações numéricas são suportados em fixnum, bignum, flonum e complexo.
- Suporta os seguintes SRFIs.
- sistema Módulo: um sistema de módulos simples, API compatível para STklos
- sistema Objeto: CLOS-like sistema de objetos com o protocolo de meta-objeto. Quase API compatível para STklos. Ele também é semelhante ao sistema objeto Guile 's.
- Suporte multibyte: Cordas são representados por string de vários bytes internamente. Você pode usar UTF-8, EUC-JP, Shift-JIS ou nenhuma codificação de vários bytes por escolha em tempo configure. Conversão entre o sistema de codificação nativa e sistema de codificação externo é apoiado por objetos de porta.
- Multibyte regexp: Regular expressão de correspondência está ciente da cadeia de vários bytes; você pode usar caracteres de vários bytes, tanto em padrões e strings combinadas.
- Leitor extensão: regexp literal e carbonizar-set, interpolação string: leitor estendido reconhece # / ... / como uma expressão regular, e # [...] como um conjunto de caracteres. Handy para escrever one-liners. (Por exemplo, (rxmatch-substring (rxmatch # / (d +) / & quot; abc123def & quot;)) == & gt; & quot; 123 & quot;)
- Também & quot; seqüência de interpolação & quot; é suportada (por exemplo, (visualização # `& quot; 1 + 2 =, (+ 1 2) n & quot;)).
- Sistema: cobre a maior parte POSIX.1 e algumas outras características comuns em sistemas Unix. Consulte a seção 6.19 do Manual de Referência para mais detalhes.
- interface de rede:. Tem API para a interface de rede baseada em socket, incluindo IPv6 se o OS suppots it
- Multithreading: Em algumas plataformas, multithreading é apoiado em cima de pthreads. Esquema de nível API conforma SRFI-18.
- interface de DBM.: Interface para bibliotecas DBM-like (dbm, ndbm e / ou gdbm) se o sistema proporciona-lhes
- parsing de XML:. Ferramentas SXML de Oleg Kiselyov estão incluídos
- ligação OpenGL:. Ligação OpenGL é fornecido em um pacote separado
- GTK obrigatório: GTK2 ligação é fornecida em um pacote separado
Interface
O que é novo nesta versão:.
- Esta versão corrige alguns problemas de compilação
O que é novo na versão 0.9.3:
- Esta versão adicionou suporte para sequências de preguiçosos, uma perfeita integração de avaliação preguiçosa com a manipulação lista.
- Threads são suportadas na construção nativo do Windows.
- Havia várias correções de bugs e melhorias de desempenho.
O que é novo na versão 0.9.2:
- Vários aprimoramentos de recursos menores e correções foram feitas nessa release.
- Os novos recursos incluem suporte a Unicode caso de mapeamento, um utilitário para execução atômica, um utilitário de benchmarking conveniente, e uma API pública para rotinas de geração de código C.
- O instalador binário do Windows agora vem como um arquivo instalador MS, gerado por Wix.
O que é novo na versão 0.9.1:
- Esta versão adiciona muitas novas funcionalidades, incluindo: eficiente registros, um mecanismo módulo reforçada com renomeação e prefixação, formals estendidas para argumentos opcionais e palavra-chave, continuações parciais, conjuntos de encadeamentos, melhor suporte do Windows, JSON parsing, hashing senha Blowfish, e muito mais.
O que é novo na versão 0.9:
- C API mudanças incompatíveis: Várias alterações C API incompatíveis são introduzidos , o que pode causar alguma extensão a falha na compilação. Veja mudanças na API em 0,9 para os detalhes.
- Novos recursos:
- Novo módulo: rfc.zlib:. Zlib compressão / descompressão
- Novo módulo: rfc.sha: apoio SHA2. rfc.sha1 é substituída por este módulo.
- Novo módulo: util.sparse: vetores esparsos apoiada por espaço eficiente trie, e tabelas de hash implementado em cima de vetores esparsos. Eles são a memória eficiente do que as tabelas de hash embutidas quando você quer manter dezenas de milhões de entradas.
- Autoprovide: Você não precisa mais "fornecer" forma para a maioria das vezes. Se (exigir & quot; X & quot;) carregado com êxito X.scm e ele não tem uma forma de fornecer, o recurso & quot; X & quot; é fornecida automaticamente. Veja o & quot; Exigir e fornecer & quot; seção da referência para mais detalhes.
- Módulo gauche.test: teste melhorado para exceções. Agora você pode testar se um tipo específico de condição é acionada, dando (test-error-tipo de condição) como o resultado esperado. Veja a entrada manual para mais detalhes.
- Módulo rfc.http: Agora lida com procuração por: argumento palavra-chave proxy. Você também pode compor facilmente application / x-www-form-urlencoded e mensagem multipart / form-data para enviar parâmetros de formulário. Novos procedimentos:. Http-posto e http-delete
- Módulo rfc.mime:. Adicionado suporte de compor uma mensagem MIME
- gauche.threads módulo: Novos procedimentos:. Fio-stop !, thread-cont !, thread-estado
- gauche.termios módulo: On suporte nativo do Windows, este módulo fornece o Windows Console API em vez de API POSIX termios, desde emulationg termios POSIX no Windows é demais. Um conjunto de comum API de alto nível que pode ser usado tanto em POSIX e Windows também são adicionados.
- Módulo gauche.dictionary fornece um mapa bidirecional,.
- Execute-processo no módulo gauche.process e embutidas sys-exec e sys-garfo-e-exec apoio:. Argumento palavra-chave diretório para especificar o diretório de trabalho do processo executado
- Módulo file.util fornece criar-directory-tree e check-diretório de árvore.
- Módulo gauche.net fornece operações de socket de baixo nível: socket-SENDMSG, socket-buildmsg, e socket-ioctl. Chame-com-client-socket leva novos argumentos de palavra-chave para especificar o modo de buffer para o socket.
- Módulo www.cgi:. Cgi-principal muda o modo de buffer de stderr para a linha, de modo que o registo de httpd pode gravar mensagens de erro de linha por linha (muito menos confusão do que antes)
- Principais correções e melhorias:
- problema de compilação fixo no OSX 10.6 (Snow Leopard).
- O desempenho é muito melhor em aritmética de ponto número, manuseio argumento opcional de procedimentos embutidas, e caso-lambda flutuante.
- Agora todos os caracteres em branco definidas no R6RS funciona como espaços intertoken no código-fonte.
- A mensagem de alerta é mostrada quando um segmento sai com um erro e nenhuma outra thread recuperar seu status por thread-se juntar! antes que o segmento é GC-ed. Isso ajuda a solução de problemas. Desde thread-se juntar! é a única maneira de saber se o segmento exitted por um erro, você tem quer chamar thread-se juntar! para certificar-se de verificar o status, ou para escrever a conversão fio para pegar todos os erros e tratá-los adequadamente.
- Anonymous nome do módulo é #f agora, em vez de (um tanto arbitrariamente escolhido) | # |.
- Alguns acessórios em símbolos: 'uninterned' SymbOS são oficialmente suportados (símbolos gerados por Gensym foram uninterned, mas nunca foi documentado oficialmente.) Uninterned símbolos são escritos como #: símbolo a la CommonLisp. Símbolos Uninterned não se encontram registados na tabela de símbolos, por isso não há nenhuma preocupação sobre o nome acidente. A única maneira de se referir ao mesmo símbolo uninterned de mais de um lugar no código fonte é usar SRFI-38 notação (# n = e # n #). Você pode criar símbolo uninterned por string- & gt;-símbolo uninterned e verificar se um símbolo é internado ou não por intened-símbolo ?. Há também um novo procedimento, símbolo-sans-prefix.
O que é novo na versão 0.8.14:
- Esta é uma versão de manutenção, incluindo correções de erros cumulativos e numerosas pequenas melhorias.
- Parte da VM foi reescrito para um melhor desempenho e facilidade de manutenção.
Comentários não encontrado