On Thu, Mar 08, 2007 at 12:57:00PM -0700, David Green wrote: : On 3/8/07, Larry Wall wrote: : >Perl 6 is specced to keep all the old versions of modules around in : >the library (unless the new version claims to emulate the old version). : : Oh, good! So how does a module say that it emulates another version? : (Or perhaps another module altogether...) Does "does" work for that?
Unspecced, but presumably some kind of modifier or trait that maybe doesn't count as part of the long name, or rather that causes alternate long names to be generated. : >So an upgrade doesn't generally break fixed dependencies. : : Hm, so if I'm not upgrading, but installing a module for the first : time, presumably I will actually get all its different incarnations : to date. I could argue that both ways. There seems to be little reason to install an older version unless someone is likely to request it in the future--especially when we're trying to cram the library onto one of those nanobots that are running around in your bloodstream. On the other hand, the more consistent everyone's library configuration is, the fewer mysterious skew errors we'll run into when the module search criteria enter the twilight zone. I'm not so sure you want your blood nanobots anywhere near the twilight zone though. : >It is allowed to run anyway, and it runs with a known good version. : : Does "allowed to run anyway" mean because older versions stay : installed (and thus you should be able to get an exact match), or : does it mean you might get some other module altogether, as long as : it claims to be compatible with whatever you asked for? Yes. You've more or less restated the current design, and helpfully pointed out that the current design neglects to provide a syntax for declaring emulation. Now we just have to come up with one. :) Larry