wstd::main doesn't set exit code on failure
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Comece localizando a implementação de #[wstd::main] e rastreando como um erro de Result atravessa a interface WIT do wasi-run. Compare seu comportamento com o padrão tokio::main descrito na issue. A tarefa estará concluída quando um async main que falha retornar um código de saída diferente de zero e não descartar o erro silenciosamente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
When using the #[wstd::main] i would expect that an error would set another exitcode than 0.
This beavior is the same right now as tokio::main in a none wasm-application.
Example usage:
use std::error::Error;
use wstd::http::{Body, Client, Request};
#[wstd::main]
async fn main() -> Result<(), Box<dyn Error>> {
let request = Request::get("https://non-existing-url.example.com")
.body(Body::empty())?;
let _response = Client::new().send(request).await?;
Ok(())
}
This will return Exit-code 0 when compiled to wasip2 through the wasi-run WIT-interface, and the error form the application will be throwed away between the wit-interface.
Is this the intended behavior?
For example right now i have to do this to make my "main" applications async
use std::error::Error;
use wstd::http::{Body, Client, Request};
fn main() {
wstd::runtime::block_on(async move {
if let Err(err) = async_main().await {
eprintln!("{err}");
std::process::exit(1);
}
});
}
async fn async_main() -> Result<(), Box<dyn Error>> {
let request = Request::get("https://non-existing-url.example.com").body(Body::empty())?;
let _response = Client::new().send(request).await?;
Ok(())
}
- Linguagem predominante
- Rust
- Estrelas
- 138
- Forks
- 21
- Merge médio
- 5d 12h
- PRs com merge (30d)
- 7
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de bytecodealliance/wstd
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
bytecodealliance/wstd#166 ·
-
Implement `http` on WASIp3Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
bytecodealliance/wstd#164 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 55/100
bytecodealliance/wstd#151 ·
-
Tracking issue for WASIp3Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 32/100
bytecodealliance/wstd#141 · 6 comentários · 1 reação ·
-
Add `wstd-azure`Talvez livre de novo @yoshuawuyts assumiu há 343 dias e não há nenhum pull request aberto. Abertaenhancement
bytecodealliance/wstd#104 · 1 reação · 1 responsável ·
Todas as issues de bytecodealliance/wstd
Issues semelhantes
-
enhancement user-priority/P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
element-hq/lk-jwt-service#248 ·
Mantenedores costumam responder em até 1 dia
-
agent:triaged bug bughunt pm:pipenv priority:p1
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
SocketDev/socket-patch#1219 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
pact-foundation/pact-cli#154 ·
Mantenedores costumam responder em até 3 dias