Yazoo é uma linha de comando, interpretado linguagem de script que fornece um ambiente pronta para C ou C ++ funções. & Nbsp; Um usuário incorpora suas próprias rotinas para a língua fazendo referência a elas em um dos próprios arquivos de origem de Yazoo, então recompilar Yazoo. Quando Yazoo é executado, ele irá abrir um prompt de comando, onde o usuário pode definir e manipular variáveis, matrizes, funções de script, ler e escrever arquivos, etc. - e, chame suas funções embutidas. Uma vez que apenas as bibliotecas C padrão são usadas, Yazoo deve funcionar em praticamente qualquer plataforma.
Yazoo scripting é um assunto minimalista: classes, conjuntos, funções, os argumentos da função, etc, são todos a mesma coisa. A simplicidade deste esquema facilita a curva de aprendizagem. Mas também compra o idioma muito generalidade - Yazoo permite muitas construções de programação exóticas que são raras em uma linguagem de script, mas provaram eminentemente útil nas mãos do autor.
O download Yazoo é composto por: C arquivos de origem / C ++; um Makefile; essenciais scripts ".zoo"; e documentação
O que é novo nesta versão:.
- Bugs corrigidos:
- problemas que definem membros de proxy ao redimensionar a matriz; por exemplo proxy_array [+1] @ :: {}
- 'q retorno "agora funciona quando' q 'é nula
- um problema onde grandes inteiros sem sinal imprimiria como '0'
- go () poderiam ficar presos dentro de elementos do array
- read_string () (e ReadTable ()) não sabia ler expoentes com sinais de mais (por exemplo 1e + 1)
- problemas de leitura e escrita de números próximos do limite underflow de precisão dupla
- um problema com ReadTable () ao tentar redimensionar listas
- um problema com ReadTable () quando uma tabela bidimensional tem apenas um único elemento
- um problema usando SaveTable () com mesas nulos
- uma cópia () falha quando o primeiro argumento era primitivo eo segundo argumento foi composta li>
- um problema com go () que se arrastou em quando o operador # foi introduzido
- acidente ocasional quando start.zoo tentei fazer um erro
- uma mensagem de aviso sob alguns compiladores (extrnl.c)
- SaveTable () agora faz questão de de-alias de tabelas se ele é chamado impropriamente
- um erro no SaveTable () quando passou uma 'table' non-composite
- um erro sinalizado no local errado
- um erro sem jeito de bandeira quando a calculadora tentou imprimir um objeto de auto-referência
- Melhorias:
- removido o 'presente'. prefixo ao definir variáveis. Isso causará problemas em procedimentos que definem as variáveis com o mesmo nome como variáveis globais!
- a =b agora funciona quando b é nula. Isto significa que "armadilha (x)" já não é a maneira de detectar membros vazios; usar 'if x ==nothing' em vez.
- adicionou um código de aviso de tempo de execução "underflow"
- acrescentou gato () para user.zoo
- acrescentou Save (), que tenta todos os caminhos de diretório (é análogo ao de carga ())
- SaveTable () agora tenta todos os caminhos de diretório
- acrescentou ls () que imprime variáveis no diretório atual
- acrescentou compile_and_do_in () para user.zoo
- acrescentou round (), que trabalha para o inteiro mais próximo
- acelerou o redimensionamento de tabelas usando ReadTable ()
O que é novo na versão 1.4:
- Bugs corrigidos:
- melhorou run () 's case-sensitive manipulação de nomes de arquivos quando run.CleanUp está definido
- para true
- mensagem de erro errada quando sair ou retornar de user.zoo
- bugs no ReadTable () envolvendo o redimensionamento dos quadros
- problemas em mensagens de erro do ReadTable ()
- Melhorias:
- adicionado # operador para substituir RunCode (), RunConstructor ()
- adicionado ';' como um símbolo alternativo para "código"
- defaults calculadora para 'on'
- adicionar minúsculas () / maiúscula () para user.zoo
- adicionado códigos de erro para ReadTable ()
O que é novo na versão 1.3.1:
- A correção para um bug de longa data que, por vezes, caiu o programa ao usar go ().
- O novo recurso de auto-limpeza de run (), também introduzido na última postagem, tem tido problemas irreproduzíveis e é possível que este bug-fix cuida disso também.
- Duas melhorias melhorar consideravelmente a calculadora: 1) o uso de Sprint () em vez de print (), e 2) a introdução de uma "ans 'variável, como muitas vezes se encontra em ambientes científicos de programação .
O que é novo na versão 1.3.0.1:
- Fixed um bug.
O que é novo na versão 1.3:
- Bugs corrigidos:
- um problema potencialmente fatal de negligenciar o caráter nulo no final do start.zoo ou outro script começando
- load () e save () foram descuidadamente usando o modo ASCII em vez de binário, o que causou problemas em PCs
- mais dois vazamentos de memória e um erro de referenciamento (potencial 3 mem. Vazamento)
- a calculadora não funcionou na versão anterior
- múltiplos bugs envolvendo [^ ..], [+ ..], + [..], =! ou chamadas de função para a esquerda de uma definição / equiparar-no / etc. operador
- problemas onde o [+ ..] / + [..] operadores iria acrescentar aos membros ocultos
- acidentes envolvendo size-0 matrizes de proxy
- problemas c / os registros de impressão calculadora (mascarada pela anterior calc. Problema, mas este problema nas versões anteriores também)
- um problema que causou o redimensionamento lenta de matrizes grandes
- desmontar () impresso os nomes de variáveis erradas em máquinas de 64 bits
- redimensionar () agora permite que um argumento final vazio
- um erro desmontado estranho quando os tipos & quot; usuário retornar my_array [a, b] & quot; no prompt de comando
- acidente de prompt de comando após o retorno de vários índices de uma matriz
- um problema sinalizar erros nas linhas que começam com | ** | Comentários -estilo
- desmontar () caiu quando dado os scripts nulos
- Melhorias:
- configurado Yazoo para que possa ser incorporado in / invocado pelo código C; também executada de forma recursiva de dentro Yazoo
- em cima executar novamente um script, run () primeiro exclui os membros que definidos última vez: não mais trap (remover ..) necessário
- go adicionado () / senha para modificar / visualizar variável workspace prompt de comando do
- adicionado operadores de comparação de referência: '== @' e '/ @ ='
- acrescentou um operador proxy-define: '# ::'
- load feito () mais rápido e mais eficiente para a memória
- cordas print ' D n' como um único fim-de-line
- run () pode retornar o resultado da instrução de retorno de um roteiro
- soma acrescentado (), média () para user.zoo
- caractere adicionado (), C_STRING () para user.zoo
- Transform () agora permite que o usuário personalize o caminho de pesquisa de código transformado
- throw () pode adaptar o local do erro jogado e lançar advertências, bem
- run () permitirá que os avisos no script para aparecer na linha de comando (supondo que nenhuma armadilha interveniente () após a advertência)
- desmontar () podem avançar sobre expressões em bytecode compilado
- substituído RunHobbish () com uma rotina mais funcional do_in () in user.zoo
- acrescentou RunCode () in user.zoo; RunConstructor () agora é um caso especial desta rotina
- consistentemente lendo bytecode como slongs
- agora corretamente, usando o ponteiro NULL em vez de 0 no código C
- melhoradas algumas mensagens de erro
- Diversos:
- mudou as palavras de bytecode para os operadores matriz de inserção ([+ ..], + [..]) e excluir
- eliminado CheckType () de user.zoo - & quot; armadilha (a =b) & quot; é geralmente melhor
- eliminado existe () a partir de user.zoo - & quot; existe (& quot; a & quot;) & quot; foi em grande parte redundante com & quot; armadilha (a) & quot;
O que é novo na versão 1.2:
- pré-termo A versão 1.2 do Yazoo acaba de ser entregue depois de uma série de erros fatais em máquinas de 64 bits veio à tona na semana passada. Yazoo é uma linha de comando interpretado linguagem de script, que o usuário se destina a personalizar incorporando suas próprias C ou C ++ rotinas para a língua. A novidade do roteiro Yazoo é a maneira que as regras por trás de sua sintaxe conservador de aparência podem ser extrapolados para a produção de muitas construções de script raros e úteis, que o autor não encontradas em outros idiomas.
- A mudança realmente crítico na presente versão foi a remoção dessas suposições sobre tamanhos inteiros que causaram falhas imediatas. Isso exigiu um outro ajuste significativo: o registro R_ulong passou de não assinado para assinado, e assim renomeado R_slong. A mudança de nome pode, em princípio, causar problemas de compatibilidade retroativa, embora, felizmente, o registo inteiro raramente precisa ser invocado explicitamente. Finalmente, em relação algo desinteressante para a maioria dos usuários, mas renovação estilística do autor demorado, o C / C ++ arquivos de origem tenham sido objecto:. Eles foram (finalmente) comentou, e sua formatação foi melhorada
- Uma vez que este autor com o rosto vermelho mexidos um pouco para deixar a versão atual, é possível que os erros de 64 bits ainda espreitam no código. Se isto é assim, então uma outra versão, alterado provavelmente será o passo seguinte em poucos dias, como o autor usa seu programa avidamente.
O que é novo na versão 1.1:
- Bugs corrigidos:
- incorretamente sinalizado mensagens de erro em quase todo o roteiro com constantes sequenciais
- o operador append-code ":" não funcionou corretamente em certos contextos, como por exemplo dentro de um operador de code-substituição
- forçou-equate não copiou elementos da matriz na ordem correta quando vários índices foram dadas explicitamente (por exemplo, um [*] =! ..., ... = B [1, 2])
- questões numéricas ao imprimir números na borda da resolução de precisão dupla
- mensagens de erro incorretamente-sinalizadas seguintes endif, FNDE ou endw
- Os nomes dos membros errados em erros membro não encontrado a partir de arquivos executados por user.zoo
- o primeiro número retornado por random () não foi totalmente aleatória
- copy () não verificar a existência de auto-referências
- um erro no SaveTable () quando a segunda dimensão de uma tabela foi dimensionado para zero
- sort () jogou um erro desnecessário para comprimento 0 listas
- leitura errada do comentário null '| *** |' com um número ímpar de '*' s
- Melhorias:
- caminhos de pesquisa de novos {} definições agora sempre passar pelo script que a definiu, não necessariamente o roteiro envolvente ***
- redimensionamento adicionado () para user.zoo
- acrescentou min (), max () para user.zoo
- sort () agora classifica listas, bem como mesas
- new () aceita diferentes variáveis de origem para o tipo e dados
- copy () retorna um código de erro
- melhor argumento verificando SaveTable ()
Comentários não encontrado