Umgebung in ghci halten?

8

Grundsätzlich wenn ich: Name.hs laden meine Variablen und solche sind weg. Google gegoogelt und Dokumente gelesen, aber gescheitert.

Gibt es eine Option, ghci zu sagen, dass alles behalten werden soll? Oder es kann nur wegen der Einschränkungen nicht gemacht werden?

Ich hoffe, ich habe nicht etwas Offensichtliches vermisst.

    
gorlum0 15.09.2011, 08:45
quelle

3 Antworten

4

Um ein neues Modul zu laden, können Sie

verwenden %Vor%

Aber das erneute Laden und Behalten von interaktiven Bindungen ist in der Regel nicht möglich. Beim Neuladen werden alle Module vergessen und neu geladen. Die Bindungen könnten von bereits geladenen Modulen abhängen. Die Abhängigkeitslogik schreibt vor, dass, wenn GHCI ein Modul vergisst, es auch alles vergessen muss, was davon abhängt, einschließlich interaktiver Bindungen.

GHCI könnte z.B. Speichern Sie den Text der Befehle, die zum Erstellen der Bindungen verwendet wurden, und versuchen Sie, diese Befehle beim erneuten Laden erneut auszuführen, da einige davon möglicherweise fehlschlagen. Aber das kann sehr schnell haarig werden, also wird es nicht gemacht.

    
n.m. 15.09.2011, 10:59
quelle
2

Ich denke nicht, dass dies mit GHCi gemacht werden kann.

Googeln, ich fand eine Readme , die besagt das: gewartete Variablen neu laden, aber Bindungen halten funktioniert bei mir nicht:

%Vor%     
danlei 15.09.2011 09:09
quelle
1

Ich füge noch eine weitere Antwort hinzu, da diese Frage zuerst google hit für mich war, während die wirkliche Lösung weiter weg war (und ich hatte einfach die restlichen Hits nicht überprüft, und nur wegen hilfsbereiter Leute im IRC, die ich gefunden habe es):

Ссылка

Im Grunde ist es die Bibliothek, die es Ihnen erlaubt, Ihre Daten unter einem stabilen Zeiger mit etwas C-Code darunter zu halten, der GHCi-Neuladungen überlebt.

Das Beispiel in diesem Blogpost ist ziemlich komplex, für jemanden, der nur einige Daten in der GHCi-Sitzung bereit haben möchte, ist die README aus der Bibliothek selbst besser:

Ссылка

Es hat mir viel Zeit erspart, aber mein Szenario war trivial: Ich wollte einige Assets laden und fertig haben, während ich den Rest des Codes manipulierte. Die Arten und Strukturen für diese Vermögenswerte ändern sich nicht.

    
Bartosz 15.04.2016 10:33
quelle

Tags und Links