#haskell - Tue 15 May 2007 between 19:35 and 19:51



sjanssenie. if by saying --trust Z, I believe that Z has made good decisions about which packages to trust too
SamB_XPwhere would you be saying --trust Z?
sjanssenSamB_XP: Z doesn't have to trust X or Y, the SAFE pragma says that it believes 'z' is safe, unconditionally
SamB_XPyeah. but what if you *don't* trust Z?
sjanssenthen you can't call 'z'
SamB_XPeven if you trust X and Y?
sjanssenoh, another thing: z only calls functions that are marked as SAFE
that probably shouldn't be allowed
SamB_XPwhy not?
sjanssenSAFE means that a function uses functions that are known to be unsafe (unsafePerformIO, etc.) but validates that their *local* use is safe
imagine that ByteString adopted this system
SamB_XPyeah. but, Z hasn't made a statement about whether it trusts X and Y...
it does seem like it would make sense to at least warn about using SAFE where it adds no information
dcouttsprobably so
eridergood evening
SamB_XPbut I still think you should store some kind of boolean expression over package names...
SAFE would then be flagged as useless if the calculated safety expression evaluates to true when the current package is trusted
dcouttssjanssen: SamB_XP: making it transitive seems to make some sense
SamB_XPthat sounds kinda confusing.
dcouttssjanssen: SamB_XP: so if we trust the package author to have marked things as safe correctly, then we probably trust their judgement about the safety of the functions they use from the other package
SamB_XPwhat... if we decide that we don't trust the package author about safety?
dcouttsSamB_XP: then just don't list it as trusted
bringertjoelr1: no user/pass yet
SamB_XPbut we do trust X and Y?
dcouttssjanssen: SamB_XP: so you had the example, package X uses functions marked safe from package Y. Suppose for a min that X does not mark anything as safe, then the safety of functions in it depends on whether we think Y is kosher.
SamB_XPyeah.
bringertjoelr1: RSS URL setting in darcs now, see /setting/hope
dcouttsSamB_XP: now, if X marks things as safe and we don't trust Y then we can't use those functions from X. If we do trust X but not Y, then we can use those functions in X (but we still cannot use Y directly)
SamB_XPso we have {-# SAFETY X.f :: Y #-}
bringertjoelr1: I probably won't have time to look at the edit issue today
SamB_XPdcoutts: hmm?
dcouttsSamB_XP: so by that reasoning, I don't think we need anything to be transitive.
joelr1bringert: woohoo!
bringert: it's your nick for user and name for pass
dcouttsSamB_XP: and it's then not so easy to say that something is marked safe redundantly, because it depends on the final context of what packages are deemed ok.
joelr1bringert: thanks!
SamB_XPdcoutts: that sounds about right
shaprgwahr!
dcouttsSamB_XP: so I think it's quite simple then, we explicitly list the set of packages we trust, functions annotated safe from safe packages are then safe. The safety of everything else is determined simply by whether they call only safe functions.
SamB_XPdcoutts: well, you don't keep the source around long enough to figure that out

Page: 4 11 18 25 32 39 46 53 60 

IrcArchive