Skip to content

Build failure with ghc 9.6.2 #262

@iMichka

Description

@iMichka

Enhancement Suggestion / Bug Report

v0.24.0.65 fails to build with ghc 9.6.2. Last successful build attempt was with ghc 8.10.

Steps which explain the enhancement or reproduce the bug

Try to build Rome using ghc 9.6.2, cabal install 3.10.2.0

Current behavior

==> cabal v2-install
  Last 150 lines from /Users/brew/actions-runner/_work/homebrew-core/homebrew-core/bottles/logs/rome/02.cabal:
                       with ‘M.HashMap b b0’
        Expected type: M.HashMap b b0
          Actual type: Object
      • In the second argument of ‘($)’, namely ‘obj’
        In the second argument of ‘(<$>)’, namely
          ‘(headMay . M.toList $ obj)’
        In the expression: fst <$> (headMay . M.toList $ obj)
      • Relevant bindings include
          firstKey :: Maybe b (bound at src/Data/Romefile.hs:115:9)
      |
  115 |     let firstKey = fst <$> (headMay . M.toList $ obj)
      |                                                  ^^^
  
  src/Data/Romefile.hs:117:83: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the second argument of ‘(.:)’, namely ‘key’
        In the second argument of ‘(<*>)’, namely ‘(obj .: key)’
        In the expression:
          RomefileEntry <$> parseJSON (Data.Yaml.String key) <*> (obj .: key)
      |
  117 |       Just key -> RomefileEntry <$> parseJSON (Data.Aeson.String key) <*> (obj .: key)
      |                                                                                   ^^^
  
  src/Data/Romefile.hs:122:64: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘T.pack prjname’
        In the expression: T.pack prjname .= fwrks
        In the first argument of ‘object’, namely
          ‘[T.pack prjname .= fwrks]’
      |
  122 |   toJSON (RomefileEntry (ProjectName prjname) fwrks) = object [T.pack prjname .= fwrks]
      |                                                                ^^^^^^^^^^^^^^
  
  src/Data/Romefile.hs:149:11: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the second argument of ‘(.:)’, namely ‘cacheJSONKey’
        In the second argument of ‘(<$>)’, namely ‘v .: cacheJSONKey’
        In the first argument of ‘(<*>)’, namely
          ‘Romefile <$> v .: cacheJSONKey’
      |
  149 |       .:  cacheJSONKey
      |           ^^^^^^^^^^^^
  
  src/Data/Romefile.hs:151:11: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the second argument of ‘(.:?)’, namely ‘repositoryMapJSONKey’
        In the first argument of ‘(.!=)’, namely
          ‘v .:? repositoryMapJSONKey’
  src/Data/Romefile.hs:166:14: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘ignoreMapJSONKey’
        In the expression: ignoreMapJSONKey .= iMap
        In the first argument of ‘(++)’, namely
          ‘[ignoreMapJSONKey .= iMap | not $ null iMap]’
      |
  166 |         ++ [ ignoreMapJSONKey .= iMap | not $ null iMap ]
      |              ^^^^^^^^^^^^^^^^
  
  src/Data/Romefile.hs:167:14: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘currentMapJSONKey’
        In the expression: currentMapJSONKey .= cMap
        In the second argument of ‘(++)’, namely
          ‘[currentMapJSONKey .= cMap | not $ null cMap]’
      |
  167 |         ++ [ currentMapJSONKey .= cMap | not $ null cMap ]
      |              ^^^^^^^^^^^^^^^^^
  
  src/Data/Romefile.hs:192:9: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘T.pack "s3Bucket"’
        In the expression: T.pack "s3Bucket" .= b
        In the first argument of ‘(++)’, namely
          ‘[T.pack "s3Bucket" .= b | isJust b]’
      |
  192 |       [ T.pack "s3Bucket" .= b | isJust b ] ++ [ T.pack "local" .= l | isJust l ] ++ [ T.pack "engine" .= e | isJust e ]
      |         ^^^^^^^^^^^^^^^^^
  
  src/Data/Romefile.hs:192:50: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘T.pack "local"’
        In the expression: T.pack "local" .= l
        In the first argument of ‘(++)’, namely
          ‘[T.pack "local" .= l | isJust l]’
      |
  192 |       [ T.pack "s3Bucket" .= b | isJust b ] ++ [ T.pack "local" .= l | isJust l ] ++ [ T.pack "engine" .= e | isJust e ]
      |                                                  ^^^^^^^^^^^^^^
  
  src/Data/Romefile.hs:192:88: error:
      • Couldn't match expected type ‘Key’ with actual type ‘T.Text’
      • In the first argument of ‘(.=)’, namely ‘T.pack "engine"’
        In the expression: T.pack "engine" .= e
        In the second argument of ‘(++)’, namely
          ‘[T.pack "engine" .= e | isJust e]’
      |
  192 |       [ T.pack "s3Bucket" .= b | isJust b ] ++ [ T.pack "local" .= l | isJust l ] ++ [ T.pack "engine" .= e | isJust e ]
      |                                                                                        ^^^^^^^^^^^^^^^
  Error: cabal: Failed to build Rome-0.24.0.65 (which is required by exe:rome
  from Rome-0.24.0.65). See the build log above for details.

Suggested behavior

No build failure

Why would the enhancement be useful to most users

We want to update to ghc 9.6.2 in the homebrew package manager, and Rome is preventing us to do so.

Rome version:

v0.24.0.65

OS and version:

macOS Ventura

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions