google / google/codeworld

Value inspection entry point

Aperta
#1,324 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
discussion
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.