Rust codegen Phantom handling bug
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Empieza en lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/TyDef.hs, alrededor de la línea 177, e inspecciona cómo las definiciones de LambdaBuffers mostradas se convierten en estructuras de Rust. Compara la salida generada para CreateScriptsRequest y ScriptDatum, comprobando tanto el campo phantom_A innecesario como la visibilidad de los valores phantom. La tarea estará terminada cuando la representación de Rust generada coincida con las definiciones de tipos de origen y gestione correctamente los tipos phantom reales.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Phantom handling in Rust codegen is not correct I believe https://github.com/mlabs-haskell/lambda-buffers/blob/401f8a920a557c71440795174da199a1e128c4f9/lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/TyDef.hs#L177
record CreateScriptsRequest a = {
scripts : Map ScriptHash (ScriptDatum a)
}
derive Eq (CreateScriptsRequest a)
derive Json (CreateScriptsRequest a)
record ScriptDatum a = {
scriptType : a,
-- ^ Protocol specific script type stored in this UTxO
redeemer : AssetClass
-- ^ Wallet containing `$redeemer` must sign the 'delete-script' transaction as an authorization method
}
derive Eq (ScriptDatum a)
derive PlutusData (ScriptDatum a)
derive Json (ScriptDatum a)
creates a
#[derive(std::fmt::Debug, std::clone::Clone)]
pub struct CreateScriptsRequest<A>{pub scripts: lbf_prelude::prelude::Map<lbf_plutus::plutus::v1::ScriptHash
,crate::cardano::extra::scriptstorage::validation::ScriptDatum<A>>,
phantom_A: std::marker::PhantomData<A>}
#[derive(std::fmt::Debug, std::clone::Clone)]
pub struct ScriptDatum<A>{pub script_type: A,
pub redeemer: lbf_plutus::plutus::v1::AssetClass}
There's 2 problems here.
- There's no actual phantom types in the original LB type def
- Even if there was, we have a problem when phantom values are not made pub in Rust
- Lenguaje dominante
- Haskell
- Estrellas
- 33
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mlabs-haskell/lambda-buffers
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
mlabs-haskell/lambda-buffers#296 ·
-
Create a more user friendly CLIAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
mlabs-haskell/lambda-buffers#295 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
mlabs-haskell/lambda-buffers#294 ·
-
Dykstra HFAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
mlabs-haskell/lambda-buffers#293 ·
-
Nix-free pathAbiertodevops
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
mlabs-haskell/lambda-buffers#292 ·
Todos los issues de mlabs-haskell/lambda-buffers
Issues similares
-
status: needs triage type: enhancement
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
haskell/haskell-language-server#5128 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
alunduil/siren-json.hs#246 ·
Los mantenedores suelen responder en 1 día
-
question
Dificultad 1/5 Menos de una hora Aptitud para principiantes 75/100
NixOS/SC-election-2026#44 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Recognise more linters: yamllint, hlint, luacheck, sqlfluff, buf, tflint, swiftformat --lintAbiertoenhancement good first issue hacktoberfest runner
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
docs: install-manifest download links use main instead of master (404)Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 Menos de una hora Aptitud para principiantes 78/100
hasura/graphql-engine#10884 ·