Created
November 29, 2012 20:09
-
-
Save japhb/4171575 to your computer and use it in GitHub Desktop.
Notes on Perl6 module system designs pros and cons
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* root/Module/Name/auth/ver.pm + root/Module/Name/Any/Any.pm + root/Module/Name/auth/ver/id.pm + manifest | |
+ Handles individual modules well | |
+ Handles broken filesystems | |
+ Handles auth and ver queries usually in FS, sometimes in manifest | |
+ Only parses manifests when needed | |
+ Does not handle PATH at all | |
+ Does not handle non-lib files | |
+ Does not handle non-installed files | |
+ Does not handle binding versioned files together (though to be fair S11 is weak at this too) | |
* root/auth/package/ver/{bin,lib,share,...} + manifest | |
+ Handles broken filesystems | |
+ Handles non-lib files well | |
+ Handles bound versioned files well | |
+ Handles auth and ver queries in manifest always | |
+ Requires always parsing manifests | |
+ Does not handle PATH well | |
+ Does not handle non-installed files | |
* root/{bin,lib,share}/... ("alternatives" symlinks) -> root/auth/package/ver/{bin,lib,share,...} + manifest | |
+ Handles broken filesystems | |
+ Handles PATH well | |
+ Handles non-lib files well | |
+ Handles bound versioned files | |
+ Handles auth and ver queries in manifest always | |
+ Fast path for Any/Any queries, but otherwise manifest always | |
+ May be possible to consider non-installed files to be a special case of not having version info | |
+ Makes module install system rather heavy weight; lots of complexity |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment