Value inspection entry point
- Lingua principale
- Haskell
- Stelle
- 1.3k
- Fork
- 201
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Conversation with @peterbecich led to this idea, which is a stepping stone toward #741.
Define a type class that captures the notion of being able to inspect a type in a GUI. Define instances for ALL types in the `codeworld-base` package, even if that means that the notion of "inspect" for some atomic values is useless. Also make it easy to define an instance via Generic. Implement a GHC source plugin that auto-derives both Generic and this new type class (via Generic) for all types defined in user code.
Now, add a CodeWorld entry point that uses this type class to display a GUI value inspector, for the value passed in.
Optional add-on: in another GHC source plugin, if `program` is not defined in a codeworld-mode source file, auto-define it to pop up the value inspector for all top-level values defined in the module. Now it's possible to run a program without defining program at all, and if you do, you just get to poke at the values of everything you've defined in the module.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia individuando il pacchetto codeworld-base, gli entry point esistenti del GHC source-plugin e l’entry point di CodeWorld usato per eseguire i valori. Il lavoro è completato quando tutti i tipi di codeworld-base dispongono di istanze di ispezione, i tipi definiti dall’utente possono essere gestiti tramite Generic e una derivazione generata dal plugin, e l’entry point mostra un inspector GUI; il comportamento opzionale del programma è separato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- haskell
- Ambito
- compilers, frontend
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100