Nachdem comint
ich einige benutzerdefinierte Modi geschrieben habe, fällt es mir oft schwer zu entscheiden, wie Puffer und Prozesse verfolgt werden sollen: Zum Beispiel, um verschiedene Quellpuffer mit verschiedenen Interpreten zu verknüpfen. Ist es besser, einen Verweis auf den Puffer oder den Prozess zu behalten?
Bei gegebenem Puffer kann man den zugehörigen Prozess mit finden get-buffer-process
. Umgekehrt gibt ein gegebener Prozess process-buffer
den zugehörigen Puffer zurück. Sowohl Puffer als auch Prozesse ermöglichen eine zusätzliche Indirektionsebene, indem sie unter einem eindeutigen Namen nachgeschlagen werden. Dies scheint jedoch fragil zu sein, wenn nur ein Verweis auf das Objekt selbst beibehalten wird.
Eine Möglichkeit scheint eindeutig schlecht zu sein, da sie gegen das Prinzip verstößt, Daten einmal und nur einmal zu speichern: Verweise sowohl auf den Puffer als auch auf den Prozess beizubehalten.
Die meisten comint-
Funktionen zum Senden von Eingaben verwenden eher einen Prozess als einen Puffer als Argument, das dafür spricht, am Prozessobjekt und nicht am Puffer festzuhalten. Auf der anderen Seite bleiben Puffer in der Regel länger als Prozesse bestehen: Ein Prozess wird möglicherweise beendet oder beendet, und ein neuer Prozess wird in dem zuvor verwendeten Puffer gestartet.
Gibt es andere überzeugende Argumente für die Referenzierung des Prozesses oder seines Puffers?