sdk
Utilitários do kit de desenvolvimento de software do fry
uma biblioteca especial que expõe alguns dos elementos internos do interpretador fry
Importação
_ <- fat.sdk
Tipos
A biblioteca sdk contribui os tipos Diagnostic, Symbol e CodeAnalysis, que são destinados ao uso por ferramentas de desenvolvimento.
Métodos
| Nome | Assinatura | Breve descrição |
|---|---|---|
| ast | (_): Void | Imprime árvore de sintaxe abstrata do nó |
| stringify | (_): Text | Serializa o nó em texto semelhante a JSON |
| probe | (source: Text): CodeAnalysis | Analisa o código fonte |
| eval | (_): Any | Interpreta texto como programa FatScript |
| getVersion | <> Text | Retorna versão do fry |
| printStack | (depth: Number): Void | Imprime pilha do contexto de execução |
| getStack | (depth: Number): List/Text | Retorna a pilha do contexto de execução |
| readLib | (ref: Text): Text | Retorna o código-fonte da biblioteca fry |
| typeOf | (_): Text | Retorna o nome do tipo do nó |
| getTypes | <> List | Retorna info sobre tipos declarados |
| getDef | (name: Text): Any | Retorna definição de tipo por nome |
| defaultsOf | (name: Text): Scope | Retorna defaults declarados de um tipo |
| getMeta | <> Scope | Retorna os metadados do interpretador |
| setKey | (key: Text): Void | Define chave para pacotes ofuscados |
| setMem | (n: Number): Void | Define limite de memória (contagem de nós) |
| runGC | <> Number | Rodar o GC, retorna transcorrido em milis. |
Notas de uso
stringify
Enquanto recode.toJSON produz um JSON estritamente válido, stringify é mais flexível. Ele é capaz de exportar HugeInt como números hexadecimais (por exemplo, 0x123abc), Chunk como codificado em Base64, e outros tipos também podem ter representações mais informativas do que apenas null. Essas representações são projetadas para permitir uma exportação mais rica para o ambiente FatScript e não são destinadas à serialização compatível com JSON.
readLib
_ <- fat.sdk
_ <- fat.console
print(readLib('fat.extra.Date')) # imprime a implementação da biblioteca Date
readLibnão pode ver arquivos externos, masreadda biblioteca file pode
defaultsOf
Retorna apenas os slots de um tipo que possuem valores padrão declarados, como um Scope simples, sem invocar o construtor do tipo. É usado, por exemplo, pelo mixin Storable para preencher campos ausentes de registros armazenados no load.
setKey
Use preferencialmente no arquivo .fryrc assim:
_ <- fat.sdk
setKey('secret') # irá codificar e decodificar pacotes com esta chave
Veja mais sobre ofuscação.
setMem
Use preferencialmente no arquivo .fryrc assim:
_ <- fat.sdk
setMem(5000) # ~2mb
runGC
A maioria dos scripts simples em FatScript não precisará se preocupar com a gestão de memória, pois as configurações padrão são projetadas para fornecer uma capacidade de memória ampla e um comportamento automático eficiente desde o início. Geralmente, a melhor maneira de otimizar a performance é simplesmente ajustando o limite de memória. Em alguns casos raros, como em um loop de jogo ou processos iterativos complexos, você pode se beneficiar de chamar explicitamente o coletor de lixo.
A melhor maneira de determinar a opção mais adequada é realizar testes comparativos em sua aplicação, simulando cenários de uso real.
rode seu script com a flag
-cpara avaliar o desempenho de sua execução
Veja mais sobre gerenciamento de memória.