Sun Feb 17 10:03:58 PST 2008  Ian Lynagh <[EMAIL PROTECTED]>
  * MERGED: FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring 
matching
  [EMAIL PROTECTED]
  
      - #1839 asks for a ghc-pkg dump feature, #1463 for the ability
        to query the same fields in several packages at once.
  
      - this patch enables substring matching for packages in 'list',
        'describe', and 'field', and for modules in find-module. it
        also allows for comma-separated multiple fields in 'field'.
        substring matching can optionally ignore cases to avoid the
        rather unpredictable capitalisation of packages.
  
      - the patch is not quite as full-featured as the one attached
        to #1839, but avoids the additional dependency on regexps.
        open ended substrings are indicated by '*' (only the three
        forms prefix*, *suffix, *infix* are supported)
  
      - on windows, the use of '*' for package/module name globbing
        leads to conflicts with filename globbing: by default, windows
        programs are self-globbing, and bash adds another level of
        globbing on top of that. it seems impossible to escape '*'
        from both levels of globbing, so we disable default globbing
        for ghc-pkg and ghc-pkg-inplace. users of bash will still
        have filename globbing available, users of cmd won't.
  
      - if it is considered necessary to reenable filename globbing
        for cmd users, it should be done selectively, only for
        filename parameters. to this end, the patch includes a
        glob.hs program which simply echoes its parameters after
        filename globbing. see the commented out glob command in
        Main.hs for usage or testing.
  
      - this covers both tickets, and permits for the most common
        query patterns (finding all packages contributing to the
        System. hierarchy, finding all regex or string packages,
        listing all package maintainers or haddock directories,
        ..), which not only i have wanted to have for a long time.
  
        examples (the quotes are needed to escape shell-based
        filename globbing and should be omitted in cmd.exe):
  
          ghc-pkg list '*regex*' --ignore-case
          ghc-pkg list '*string*' --ignore-case
          ghc-pkg list '*gl*' --ignore-case
          ghc-pkg find-module 'Data.*'
          ghc-pkg find-module '*Monad*'
          ghc-pkg field '*' name,maintainer
          ghc-pkg field '*' haddock-html
          ghc-pkg describe '*'
  

    M ./utils/ghc-pkg/Main.hs -42 +108
    M ./utils/ghc-pkg/Makefile -2 +6

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to