Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Mar 29, 2008

  1. Duncan Coutts

    Bump version to 1.5.1 -- the next development series

    Though we should try and limit divergence until 1.4.0 is released.
    dcoutts authored

Mar 28, 2008

  1. RossPaterson

    factor out showPWarning function

    RossPaterson authored
  2. Duncan Coutts

    Tweak warning message about bool fields to include the field name

    Warning: The 'buildable' field is case sensitive, use 'True' or 'False'.
    dcoutts authored

Mar 27, 2008

  1. Duncan Coutts

    Simplify the parser for flags in conditions

    It's a bit more consistent.
    dcoutts authored
  2. Duncan Coutts

    We do not show the field value on a parse error so don't pretend we do.

    Drop the trailing ": " on the error message. We could provide the field
    value but they're often multi-line and we cannot pin-point where the
    error is exactly.
    dcoutts authored
  3. Duncan Coutts

    Use the Text Bool instance for parsing literals in conditions

    Since it exactly matches what the previous condition parser did.
    So we have two different ways of parsing Bool depending on
    context. Sigh. Both match exactly what was done in Cabal-1.2.
    dcoutts authored
  4. Duncan Coutts

    Parse Bool fields using more cunning, allow new parses with a warning

    We want to allow case-insensitive parsing however we don't want
    packages being uploaded to hackage that will break older versions of
    Cabal. If we allow new valid parses then we will end up breaking
    stuff. So what we really want to do is allow new parses but warn if
    they're not ones that older versions of Cabal would have allowed. So
    long as hackage rejects pakcages that have parse warnings then we can
    prevent new .cabal files appearing on hackage that would break older
    Cabal versions. Our current parser (ReadP) does not support warnings
    so we have to handle the bool fields specially in the parser wrapper
    layer that we added to handle errors and warnings. This can go away
    when we use a parser with support for error and warning messages.
    dcoutts authored
  5. Duncan Coutts

    Add scripts for testing compatability with hackage packages

    So far just a test that all the non-trivial Setup.(l)hs scripts
    compile. This only tests the latest versions, though if one were
    to download a complete archive then one could test them all.
    To speed up the check we skip Setup.hs scripts that have fewer
    than 22 words. Below this cutoff there are no custom hooks and
    it catches the great majority of scripts which greatly speeds up
    the check.
    dcoutts authored
  6. Duncan Coutts

    Rename various *Verbose fields to *Verbosity instead

    Despite appearances this is actually not completely pointless.
    For the Cabal-1.4 branch we need the *Verbose fields to have the
    same types as they did in Cabal-1.2, becuase lots of Setup.hs
    scripts use them and our change to make them all have type Flag
    makes many Setup.hs scripts fail. A solution for the 1.4 branch
    is to rename the real field and to add the old field back in.
    To keep as much similarity as possible between the HEAD and 1.4
    branches I'm applying the name change in both.
    On the plus side it's a better name anyway.
    dcoutts authored
  7. Duncan Coutts

    Make UTF-8 decoding errors in .cabal files non-fatal

    Previously we checked for invalid UTF-8 in the first phase of the
    parser, which splitting the file up into nested sections and fields.
    This meant the whole parser falls over if there is invalid UTF-8
    anywhere in the file. Sadly there are already packages on hackage
    with invalid UTF-8 so we would fail when parsing the hackage index.
    The solution is to move the check into the parsing of the individual
    fields and making it a warning not an error. We most typically get
    invalid UTF-8 in free text fields like author name, copyright,
    description etc so this should work out ok usually.
    We now get pretty decent error messages, like:
      Warning: hsx.cabal:5: Invalid UTF-8 text in the 'author' field.
    The warning type is now structured so that hackage will be able to
    distinguish general non-fatal warnings from UTF-8 decoding problems
    which really should be fatal errors for package uploads.
    dcoutts authored
  8. Duncan Coutts

    Separate the OS/Arch classifiation used for different purposes

    We have to classify System.Info.{os,arch} strings into the OS and Arch
    enums. For that purpose we have to be quite permissive since there are
    lots of ailases that the various Haskell implementations use. However
    for parsing os and arch names in .cabal files we'd prefer to use
    canonical names, though we do have to allow the couple aliases already
    in common use.
    dcoutts authored
  9. Duncan Coutts

    Arch and OS names were previously allowed to contain "_-", restore that.

    That is the arch and os strings in conditionals in .cabal files, like:
      if arch(x86_64)
    Previously the parser used isAlphaNum c || (c `elem` "_-"). This is
    crucial for arch names like "x86_64". So make the new parser for OS
    and Arch types use the same string parser as before (there is a string
    parse part and a separate classification of known OS/Arch values).
    dcoutts authored

Mar 26, 2008

  1. RossPaterson

    allow underscores in arch names

    Stops it barfing on arch(x86_64).
    RossPaterson authored
  2. Duncan Coutts

    Bump version to 1.3.9

    dcoutts authored
  3. Duncan Coutts

    It appears that the ReadS variants reqArg'' and optArg'' are unused

    dcoutts authored
  4. Duncan Coutts

    Replace three separate copies of no_extra_flags with one version

    dcoutts authored
  5. help nhc98 to find Ix(inRange)

    Malcolm.Wallace authored

Mar 25, 2008

  1. Duncan Coutts

    Remove the need for instance Functor ((->) r)

    I think. It's hard to test since with base as it is we cannot
    easily compile without that instance being in scope.
    dcoutts authored
  2. remove ugly nhc98 cpp+defaulting hack - use explicit typesig instead

    Malcolm.Wallace authored
  3. cpp language pragmas required

    Malcolm.Wallace authored
  4. help nhc98 to disambiguate class methods

    Malcolm.Wallace authored
  5. disambiguate some imports

    Malcolm.Wallace authored
  6. needs an import of non-H'98 instance Functor ((->) r)

    Malcolm.Wallace authored
  7. help nhc98 decipher ambiguous class methods

    Malcolm.Wallace authored
  8. make indentation H'98 compliant

    Malcolm.Wallace authored
  9. Duncan Coutts

    Switch a few debug Show instances to use derived Show

    The pretty printer version should be using Text but I've left them as
    comments for the moment as they do not have corresponding parsers yet.
    dcoutts authored
  10. Duncan Coutts

    Use disp/display in a couple more places instead of show

    dcoutts authored

Mar 24, 2008

  1. Duncan Coutts

    Remove last uses of parseReadS

    One use was for parsing bools in the installed package info. We can
    go with the more liberal Text instance for that. The other use is for
    parsing Haskell strings in quoted string fields. So we keep it for
    that purpose but restrict the type and rename to parseHaskellString.
    dcoutts authored
  2. Duncan Coutts

    Add parseCompilerFlavorCompat and use it instead of parseReadS

    So it accepts the same valid values as parseReadS did, but doesn't
    fall over on unknown values, returning (OtherCompiler "the_name").
    dcoutts authored
  3. Duncan Coutts

    Prserve case when parsing unknown/other enum values for OS,Arch and C…

    …ompiler
    dcoutts authored
  4. Duncan Coutts

    Add warning about the use of ghc-options: -optl-Wl,-s

    dcoutts authored
  5. Duncan Coutts

    Check for unknown build-type, extensions, licenses and compilers

    dcoutts authored
  6. Duncan Coutts

    Parse extension names in .cabal files using Text rather than Read

    This means we can now parse unknown extensions without falling over.
    Indeed if the compiler supports the unknown extension then we can
    even successfully use it. This gives us some forwards compatability
    for new extensions.
    dcoutts authored
  7. Duncan Coutts

    Improve the warning message about unsupported extensions.

    That is, extensions the compiler does not support, as opposed to
    extensions that are unknown to Cabal.
    dcoutts authored
  8. Duncan Coutts

    Convert a couple uses of read/reads in the GHC module

    Read the ghc --supported-languages list using simpleParse rather than
    reads. It now parses extensions that GHC recognises but Cabal does
    not as (UnknownExtension theExtensionName). For example this allows
    people to use the PArr extension which ghc currently supports but
    which is not a finalised registered extension.
    dcoutts authored
Something went wrong with that request. Please try again.