Avendo scritto un paio di comint
modalità personalizzate , trovo spesso difficile decidere come tenere traccia di buffer e processi: ad esempio, associare diversi buffer di origine a diversi interpreti. È meglio mantenere un riferimento al buffer o al processo?
Dato un buffer, è possibile trovare il processo associato usando get-buffer-process
. Al contrario, dato un processo, process-buffer
restituisce il relativo buffer associato. Sia i buffer che i processi consentono anche un ulteriore livello di riferimento indiretto osservandoli con un nome univoco, ma questo sembra fragile rispetto al semplice mantenere un riferimento all'oggetto stesso.
Una possibilità sembra chiaramente negativa, poiché viola il principio della memorizzazione dei dati una sola volta: vale a dire, mantenendo i riferimenti sia al buffer che al processo.
La maggior parte delle comint-
funzioni per l'invio di input prende un processo piuttosto che un buffer come argomento, il che fa appello all'oggetto processo, non al buffer. D'altra parte, i buffer tendono a rimanere più a lungo dei processi: un processo potrebbe terminare o essere ucciso e un nuovo processo avviato nel buffer utilizzato in precedenza.
Ci sono altri argomenti convincenti per fare riferimento al processo o al suo buffer?