Chicken é uma aplicação compilador livre e de código aberto para a linguagem de programação Scheme. Ele é compatível com o sistema operacional Linux / UNIX.
Frango produz C eficiente e portátil, e suporta muitos de o padrão linguagem Esquema atual (veja a lista abaixo para detalhes).
Ele fornece out-of-the-box suporte para SRFI 0 (cond-expandir), SRFI 1 (biblioteca List), SRFI 2 (e-let *), SRFI 4 (Homogêneos tipos de dados vetoriais numéricos), SrfI 6 (portas de cordas Básico ), SRFI 8 (receber), SrfI 9 (tipos de Record), SRFI 10 (#, forma externa), SRFI 13 (biblioteca String), SRFI 14 (set biblioteca Personagem), SRFI 16 (caso-lambda), SRFI 17 ( conjunto generalizado!), SRFI 18 (suporte multithreading), SRFI 23 (erro), SrfI 25 (primitivos matriz multidimensional), SRFI 26 (corte, bonito), SRFI 28 (formato), SrfI 30 (Comentários de bloco), SRFI 37 ( argumento programa processador), SRFI 38 (Representação externa para dados com estrutura compartilhada), SRFI 39 (Parâmetros), SRFI 40 (biblioteca Stream), SRFI 42 (compreensões Eager), SRFI 43 (biblioteca Vector) e SRFI 55 (exigir-extensão ).
O que é novo nesta versão:
- Esta versão inclui várias correções de segurança e de acidentes importantes, após uma recente onda de bug-caça por nossos hackers do núcleo.
O que é novo na versão 4.8.0.5:
- Esta versão inclui várias correções de segurança e de acidentes importantes, após uma recente onda de bug-caça por nossos hackers do núcleo.
O que é novo na versão 4.8.0.3:
- Esta versão corrige um bug principalmente no Linux e Solaris que causa alto uso da CPU quando esperando por processo filho I / O.
O que é novo na versão 4.8.0.2:
- Intérprete:
- regressão Fix in, d para procedimentos, o que resultou em um erro sprintf.
- Compiler:
- Fix reescrita de novas linhas (~~) em printf.
- Duração:
- Permitir & gt; 4GB heap em sistemas de 64 bits (# 974).
- biblioteca ausente Adicionado (-lrt) no Solaris para chamadas nanosleep (# 970).
- sistema Envergadura:
- Use -f teste em vez de teste -e em identify.sh para aplacar Solaris.
O que é novo na versão 4.8.0.1:
- Correções de segurança:
- Use POSIX poll () em sistemas onde disponíveis. Isso evita uma falha de projeto no select (); ele suporta não mais que descritores FD_SETSIZE.
- bibliotecas do núcleo:
- EINTR Fixo manipulação no processo de espera e quando a leitura a partir dos portos de arquivo.
- Bugfix para irregex (# 686). Nota:. Irregex.scm embora agora diz que a versão 0.9.2, a versão 0.8.3 é, na verdade, mais alguns remendos portados
- Corrigido o problema em "tornar-caminho" que devolveu um caminho absoluto se for dada uma relativa sem um argumento diretório.
- Em sistemas de 64 bits do "64 bits" identificador de recurso é registrado.
- Compiler:
- vários bugs corrigidos no banco de dados do tipo.
- correções de bugs e melhorias na escrutinador.
- Na passagem de fluxo-análise, de correspondência de tipo de combinações de "lista" / tornou-se mais confiável "lista de" tipos.
- Sintaxe expansor:
- Faça define macro-renomeado em começar corpos (módulos dentro) visíveis a formas posteriores. (# 944).
- Duração:
- código incorreto fixa na conversão argumento estrangeira para "unsigned-integer64" (# 955).
- ferramentas principais:
- O caminho de tempo de execução de ligação para executáveis compilados não foi definido corretamente em sistemas FreeBSD.
- Corrija instalar-extensão quebra quando o segundo arg contém pares (SRC DST).
- sistema Envergadura:
- Prevent reconstrução de buildversion.scm em cada marca (1) no Windows.
sistema
O que é novo na versão 4.8.0:
- Interfaces e functors foram adicionados ao sistema módulo.
- O sistema de tipo tenha sido prorrogado.
- Um grande número de correções de bugs e limpeza geral ter sido feito no compilador, runtime sistema, bibliotecas centrais, e sintaxe expansor.
O que é novo na versão 4.6.0:
- Alguns otimizações do compilador foram melhorados significativamente.
- Vários procedimentos internos ea alocação de procedimentos para as listas, vetores e estruturas gerar o código mais rápido.
- Unidades SRFI-4 e SRFI-18 têm sido fortemente limpo e otimizado.
- Vários bugs foram corrigidos no programador de discussão.
- chicken-instalação foi prorrogado, e seu apoio compilação cruz foi atualizado de forma significativa.
- O sistema de compilação agora suporta mais plataformas e compiladores.
- Os vários scripts de infra-estrutura foram revistos para refletir a estrutura da nova infra-estrutura de Web site.
O que é novo na versão 4.4.0:
- o sistema agora podem ser construídos com llvm-gcc e / ou "clang" (compilador LLVM o C que não utiliza o frontend GNU C)
- adicionar nova opção `-trunk 'para` galinha-install', que as forças de construção e instalação da versão de desenvolvimento de extensões em combinação com `-t local '
- adicionar nova opção `-Implante 'para` galinha-install', que constrói extensão para uso em aplicações "mobilizados" (veja abaixo)
- acrescentou opção `-Implante 'para` csc ", o motorista do compilador. Com esta opção `csc 'pode construir totalmente pacotes de aplicativos independentes e aplicativos dupla clickable GUI Macintosh; consulte a seção "Deployment" capítulo manual para mais informações
- o diretório dada à 'opção de' galinha-install '`-prefix agora pode ser um caminho relativo.
- removido da biblioteca de tempo de execução específica do GUI (`libchicken-gui") a partir do Windows construir
- GUI- e não-GUI agora usar a mesma biblioteca de tempo de execução
- formas especiais de a interface de função externa foram substituídas por uma forma interna e sintaxe para permitir renomeação e sombreamento destas formas
- o novo 'opção em `csc'` -private-repositório compila executáveis com o caminho de extensão de repositório definido para o diretório do qual o programa foi iniciado
- `csc ': preterido o` -W' e `-Windows 'opções, acrescentou` -gui' como uma substituição independente de plataforma
- `exigir-extensão '/` uso' aceita empresa de importação-especificações
- extension-especificadores definidos pelo usuário e `set-extensão-especificador! ' foram removidos
- `delete-arquivo [*] ',` renomear-file', `criar-diretório ',` file-copy', `file-movimento ',' delete-diretório 'e` diretório mudança "retornar a sua argumentação / filename de destino em caso de sucesso
- acrescentou o procedimento faltando `condição-variable-name 'ao-18 SRFI unidade de biblioteca (Graças a Joerg Wittenberger)
- o `glob? função da unidade `regex 'foi preterido
- acrescentou o procedimento `digitalizar-input-linhas 'para os' utils 'unidade de biblioteca
- adicionar nova opção runtime `-: g 'que permite GC saída de depuração
- recuperação de símbolos não usados no modo "símbolo-gc" (`-: w ') agora só tem lugar para os símbolos com uma propriedade-lista vazia
- no Windows carregamento de código compilado com [não] bibliotecas de execução GUI irá falhar e produzir uma mensagem de erro quando o executável carregamento está ligado com um sistema de tempo de execução diferente
- no Windows, bibliotecas GUI não foram correctamente ligados por `csc '
- unidade posix: setter adicionado para o `em tempo de arquivos de modificação '
- a bandeira mostra o branchname da compilação, a menos que seja "mestre"
- o "opção para` galinha-install '`-no-instalar é ignorado quando a construção / instalação de dependências
- `galinha-de desinstalação 'leva uma bola em vez de uma expressão regular como argumento
- A renomeação e comparar para de baixo nível macro-definições aceitar agora arbitrária s-expressões e renomeia / compara-os de forma recursiva
- `numeração & gt; string 'manipula-os números negativos com bases diferentes de 10 corretamente (graças a Peter Danenberg)
- removido obsoleta `setup-instalar-bandeira 'e` setup-verbose-bandeira' do módulo `setup-api '
- adicionar nova opção `-repository 'para` galinha-install' (Obrigado a Christian Kellermann)
- removido programa stub `galinha-setup '
- correção para `csc 'para usar a biblioteca correta para a fixação caminhos de carga dinâmica (Graças a Derrell Piper)
- removido documentação html do distribuição (o manual wiki agora será instalado)
- bug corrigido em `reexportação", que causou sintaxe para não ser corretamente reexportados
- trabalhos anteriores para uma variável de topo que são separados por efeitos secundários livres expressões são removidos
- versão do `encontram-files '(graças ao Jim Ursetto) janelas fixo
- documentação para extensões não é instalado automaticamente pelo `galinha-install 'mais
- mudou versão binária de "4" a "5", porque as novas bibliotecas de tempo de execução não são binário compatível com versões anteriores; isso significa que todos os ovos têm de ser reinstalado e programas existentes ser recompilados!
- acrescentou passe unboxing de compilador que resulta em melhorias de desempenho parcialmente dramáticas para o código de ponto flutuante intensivo inseguro; unboxing é habilitado em níveis de otimização 4 e 5
- removido otimização resto-argumento-vetor como poderia entrar em conflito com inlining (graças a Sven Hartrumpf)
- renomeado `'para` ponteiro +' e preterido-offset ponteiro `'offset ponteiro
- atribuições toplevel que não têm outros efeitos colaterais podem ser eliminados se puder ser demonstrado que o valor não é usado (o compilador irá gerar um aviso neste caso)
- deprecated 'opção em `galinha'` -quiet removido programa
- obsoleta `time-executar-macros declaração removido '
- removido obsoleta `-v2 'e` -v3' opções no programa `csc '
- removido obsoleta `lista de 'função (que está disponível exclusivamente como` lista de?' agora)
- removido obsoleta `estatísticos -...« funções na unidade de biblioteca POSIX
- removido obsoleta `para-cada-line 'e` para-cada-argv-line "procedimentos em utils unidade de biblioteca
- adicionado `fpinteger? e `fpabs '
- obsoleta `definir-sintaxe compilado '
- acrescentou novas primitivas de ponto flutuante `fpsin ',` fpcos', `fptan ',` fpasin', `fpacos ',` fpatan', `fpatan2 ',` fpexp', `fplog ',` fpexpt' e ` fpsqrt '
- limpeza pesada de funções matemáticas flutuante que dá um desempenho muito melhor, especialmente para código compilado no modo inseguro
- chamando `assert 'com um único argumento mostra a expressão testada em caso de falha
- várias correções de bugs e limpeza
aplicações
funções
O que é novo na versão 4.2.0:
- chicken-instalação foi modificado para resolver dependências de bibliotecas, a fim topológico, e tentar servidores alternativos se um servidor de ovo responde com um erro.
- A pilha executável em módulos de código de montagem está desativado por padrão.
- Muitos erros foram corrigidos na compilação MinGW.
- Várias novas opções foram adicionadas para o compilador e intérprete.
O que é novo na versão 3.4.0:
- O compilador agora suporta perfis processo seletivo.
- Todos os procedimentos relacionados ao arquivo foram transferidos para novos arquivos da unidade.
- Houve inúmeras correções para o Cygwin e MinGW constrói.
- PCRE empacotado com frango foi atualizado.
Comentários não encontrado