Rust codegen Phantom handling bug
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia da lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/TyDef.hs, intorno alla riga 177, e verifica come le definizioni LambdaBuffers mostrate diventano struct Rust. Confronta l'output generato per CreateScriptsRequest e ScriptDatum, controllando sia il campo phantom_A non necessario sia la visibilità dei valori phantom. Il lavoro è completato quando la rappresentazione Rust generata corrisponde alle definizioni dei tipi sorgente e gestisce correttamente i tipi phantom effettivi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- Haskell
- Stelle
- 33
- Fork
- 1
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di mlabs-haskell/lambda-buffers
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
mlabs-haskell/lambda-buffers#296 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
mlabs-haskell/lambda-buffers#295 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
mlabs-haskell/lambda-buffers#294 ·
-
Dykstra HFAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
mlabs-haskell/lambda-buffers#293 ·
-
Nix-free pathApertadevops
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
mlabs-haskell/lambda-buffers#292 ·
Tutte le issue di mlabs-haskell/lambda-buffers
Issue simili
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
alunduil/siren-json.hs#246 ·
I maintainer di solito rispondono entro 1 giorno
-
frontend Hackathon
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
flora-pm/flora-server#1334 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue hacktoberfest runner
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
halogenandtoast/ArkhamHorror#5825 · 1 commento ·
-
docs: install-manifest download links use main instead of master (404)Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 78/100
hasura/graphql-engine#10884 ·