Versões do runtime
O Waiso roda a versão estável mais recente de cada linguagem e mantém a anterior ao lado, então uma atualização nunca quebra um script de surpresa. Um script acompanha a versão mais recente até você fixá-lo; quando sai uma versão nova, cada script passa por um ensaio nela — a última execução boa repetida com as mesmas entradas — e só muda se a repetição der certo com o mesmo formato de resultado.
- Saber em que versões cada linguagem roda
- Acompanhar a mais recente ou fixar um script pelo selo do editor
- Entender um ensaio e mudar um script para uma versão nova
- Ver a versão de cada script pela aba Workers
A mais recente e a anterior, lado a lado
| Linguagem | Runtime | Mais recente | Anterior |
|---|---|---|---|
| Python | CPython | 3.15 (3.15.0) | 3.14 (3.14.8) |
| TypeScript, JavaScript | Bun | 1.4 (1.4.3) | 1.3 (1.3.14) |
| C, C++ | gcc / g++ | 14 | — (só a mais recente) |
Um script registra uma versão minor (3.14, 1.3) ou nada, que quer dizer “acompanhar a mais recente”. As versões oferecidas são as que todos os workers online têm, então o seletor nunca oferece uma versão que algum worker não conseguiria rodar. C e C++ sempre compilam com o gcc mais recente e não registram nada.
import platform
def main():
return {"runtime": "python", "version": platform.python_version()}{
"runtime": "python",
"version": "3.15.0"
}Acompanhe a mais recente ou fixe
- Abra o menu de versão
Clique no selo do motor no rodapé do código (Alterar a versão da linguagem). O menu Versão da linguagem tem duas opções.
- Escolha a anterior para fixar
Python 3.14 · anterior — Fica na 3.14 até você mudar. O script fica fixado: nenhum ensaio vai mudá-lo.
- Escolha a mais recente para acompanhar
Python 3.15 · mais recente — Acompanha cada nova versão estável. Saindo de uma versão anterior fixada, isso passa antes por um ensaio (Muda depois que um ensaio passar.).
O ensaio
Um ensaio repete a última execução bem-sucedida do script — o mesmo código, as mesmas entradas — na versão nova. Ele passa quando a execução dá certo e o resultado tem o mesmo formato no primeiro nível: o mesmo tipo de valor e, para um objeto, as mesmas chaves. Aí o script muda — e, se estava publicado, o código publicado é registrado de novo como uma nova versão publicada no runtime novo, com os pacotes que o ensaio instalou. Senão, ele fica onde estava, e a falha diz o motivo (The output’s keys changed (missing total).).
- Automático: quando sai uma versão mais nova, cada script que acompanha a mais recente é ensaiado em segundo plano, alguns por vez.
- À mão: um script atrasado mostra 3.15 disponível no selo e um botão Mover para Python 3.15 — Executa o script na 3.15 com as entradas da última execução bem-sucedida. Ele só muda se o resultado for o mesmo.
- Um ensaio que falhou não é repetido sozinho, e uma versão que você fixou nunca é mudada.
| O que o selo diz | Significado |
|---|---|
| Ensaiando no Python 3.15… | A repetição está rodando |
| Movido para Python 3.15. | Passou; o script agora roda na 3.15 |
| Continua no Python 3.14 — o ensaio falhou. | Com o erro e Abrir a execução do ensaio |
| Nada para repetir — execute o script com sucesso uma vez antes. | Ainda não há execução boa |
Pacotes Python ainda sem build
Na versão mais nova do Python, um script não fixado instala só pacotes pré-compilados (wheels), nunca uma compilação longa a partir do código-fonte. Quando um pacote ainda não tem build para o Python mais novo, o script roda sozinho no anterior e avisa — no selo e no painel Dependências: Rodando no Python 3.14 — numpy ainda não tem build para 3.15. Quando o pacote lançar um, Mover para Python 3.15 faz o ensaio.
Todos os scripts de uma vez: a aba Workers
A aba Workers da página de projetos tem a seção Versões das linguagens — Os scripts passam para a versão mais nova depois que um ensaio passa. Para Python e Bun ela mostra quantos scripts estão na Mais nova e na Anterior, e uma lista pesquisável com as colunas Script, Versão (com a marca fixada), Último ensaio (Na fila, Executando, Passou, Falhou, Ignorado) e Erro.
- Ensaiar todos os atrasados põe na fila um ensaio para cada script ainda na versão anterior.
- Ensaiar de novo numa linha ensaia um script outra vez — o jeito de repetir um ensaio que falhou depois de corrigir o script.
- C e C++ não aparecem: rodam só no gcc mais recente.
Limites
- Só duas versões por linguagem são oferecidas: a mais recente e a minor anterior. Uma versão mais antiga não está disponível.
- Mudar a versão exige acesso de edição ao script.
- Um ensaio compara o formato do resultado, não os valores: um script cuja saída depende da data ou dos dados pode passar com valores diferentes.