> "Henrik Hjelte" <[EMAIL PROTECTED]> wrote
> Tue, 8 Jan 2008 16:15:07 +0100:
> 
> | Distribuerade VC system som darcs gör det ju suveränt enkelt att
> | mixtra med pathcar, brancha osv.
> 
> Låter bra.  Men hur gör man för att byta ut en version av PAKET? I
> fallet cffi får jag en massa symbolkonflikter (jag tror att det beror på
> att symboler exporteras om igen). Försökte lite lamt med UNINTERN av
> (APROPOS-LIST "" :PAKET) men det verkar ganska fel.

I en körande lisp? Med viss svårighet. Primärt är det DEFPACKAGE som 
interagerar rätt dåligt med EXPORT/IMPORT, det är odefinierat vad som händer 
om en DEFPACKAGE-form inte stämmer med nuvarande export-status av ett paket 
(det är explicit OK om paketet INTE finns, då skapas det och symboler sätts 
upp som formen angiver).

Då olika versioner av ett paket kan ha olika symbolsynlighet och det 
vanligtvis inte finns automagiska fjukar för att synka symbolsynligheten så 
klagas det. Eftersom det är odefinierat vad som händer är det HELT OK att 
signalera ett ERROR snarare än ett CERROR och saker stannar fort.

I princip borde det inte vara speciellt svårt att introspektera detta (läs en 
systemdefinition, jaga igenom alla filer m.h.a READ, snarare än LOAD, 
identifiera alal DEFPACKAGE-former och se till att de synkar med någon slags 
körande verklighet), men det är lite knepigare än att jag kan slänga ihop en 
lösning i marginalen.

//Ingvar (släpper versionerade paket eller packade snapshots, bara)



_______________________________________________
Lisp mailing list
Lisp@lisp.se
http://mailman.nocrew.org/cgi-bin/mailman/listinfo/lisp

Reply via email to