packages feed

hprotoc 1.7.9 → 1.8.0

raw patch · 5 files changed

+49/−37 lines, 5 filesdep ~protocol-buffersdep ~protocol-buffers-descriptor

Dependency ranges changed: protocol-buffers, protocol-buffers-descriptor

Files

Text/ProtocolBuffers/ProtoCompile.hs view
@@ -5,7 +5,6 @@ import Control.Monad.State(State, execState, modify) import qualified Data.ByteString.Lazy.Char8 as LC (hGetContents, hPut, pack, unpack) import Data.Foldable (toList)-import Data.List(break) import qualified Data.Sequence as Seq (fromList,singleton) import Data.Sequence ((|>)) import Data.Version(showVersion)@@ -25,7 +24,7 @@  import qualified Text.DescriptorProtos.FileDescriptorProto as D(FileDescriptorProto) import qualified Text.DescriptorProtos.FileDescriptorProto as D.FileDescriptorProto(FileDescriptorProto(..))-import qualified Text.DescriptorProtos.FileDescriptorSet   as D(FileDescriptorSet)+-- import qualified Text.DescriptorProtos.FileDescriptorSet   as D(FileDescriptorSet) import qualified Text.DescriptorProtos.FileDescriptorSet   as D.FileDescriptorSet(FileDescriptorSet(..))  import Text.ProtocolBuffers.ProtoCompile.BreakRecursion(makeResult)
Text/ProtocolBuffers/ProtoCompile/MakeReflections.hs view
@@ -27,9 +27,9 @@ import qualified Text.DescriptorProtos.EnumValueDescriptorProto       as D.EnumValueDescriptorProto(EnumValueDescriptorProto(..)) import qualified Text.DescriptorProtos.FieldDescriptorProto           as D(FieldDescriptorProto)  import qualified Text.DescriptorProtos.FieldDescriptorProto           as D.FieldDescriptorProto(FieldDescriptorProto(..)) -import qualified Text.DescriptorProtos.FieldDescriptorProto.Label     as D.FieldDescriptorProto(Label)+-- import qualified Text.DescriptorProtos.FieldDescriptorProto.Label     as D.FieldDescriptorProto(Label) import           Text.DescriptorProtos.FieldDescriptorProto.Label     as D.FieldDescriptorProto.Label(Label(..))-import qualified Text.DescriptorProtos.FieldDescriptorProto.Type      as D.FieldDescriptorProto(Type)+-- import qualified Text.DescriptorProtos.FieldDescriptorProto.Type      as D.FieldDescriptorProto(Type) import           Text.DescriptorProtos.FieldDescriptorProto.Type      as D.FieldDescriptorProto.Type(Type(..)) import qualified Text.DescriptorProtos.FieldOptions                   as D(FieldOptions(FieldOptions)) import qualified Text.DescriptorProtos.FieldOptions                   as D.FieldOptions(FieldOptions(..))
Text/ProtocolBuffers/ProtoCompile/Parser.hs view
@@ -10,49 +10,48 @@  import qualified Text.DescriptorProtos.DescriptorProto                as D(DescriptorProto) import qualified Text.DescriptorProtos.DescriptorProto                as D.DescriptorProto(DescriptorProto(..))-import qualified Text.DescriptorProtos.DescriptorProto.ExtensionRange as D(ExtensionRange)+-- import qualified Text.DescriptorProtos.DescriptorProto.ExtensionRange as D(ExtensionRange) import qualified Text.DescriptorProtos.DescriptorProto.ExtensionRange as D.ExtensionRange(ExtensionRange(..)) import qualified Text.DescriptorProtos.EnumDescriptorProto            as D(EnumDescriptorProto) import qualified Text.DescriptorProtos.EnumDescriptorProto            as D.EnumDescriptorProto(EnumDescriptorProto(..))-import qualified Text.DescriptorProtos.EnumOptions                    as D(EnumOptions)+-- import qualified Text.DescriptorProtos.EnumOptions                    as D(EnumOptions) import qualified Text.DescriptorProtos.EnumOptions                    as D.EnumOptions(EnumOptions(..)) import qualified Text.DescriptorProtos.EnumValueDescriptorProto       as D(EnumValueDescriptorProto) import qualified Text.DescriptorProtos.EnumValueDescriptorProto       as D.EnumValueDescriptorProto(EnumValueDescriptorProto(..))-import qualified Text.DescriptorProtos.EnumValueOptions               as D(EnumValueOptions)+-- import qualified Text.DescriptorProtos.EnumValueOptions               as D(EnumValueOptions) import qualified Text.DescriptorProtos.EnumValueOptions               as D.EnumValueOptions(EnumValueOptions(..)) import qualified Text.DescriptorProtos.FieldDescriptorProto           as D(FieldDescriptorProto) import qualified Text.DescriptorProtos.FieldDescriptorProto           as D.FieldDescriptorProto(FieldDescriptorProto(..)) import           Text.DescriptorProtos.FieldDescriptorProto.Label-import qualified Text.DescriptorProtos.FieldDescriptorProto.Type      as D.FieldDescriptorProto(Type)+-- import qualified Text.DescriptorProtos.FieldDescriptorProto.Type      as D.FieldDescriptorProto(Type) import           Text.DescriptorProtos.FieldDescriptorProto.Type         (Type(..))-import qualified Text.DescriptorProtos.FieldOptions                   as D(FieldOptions)+-- import qualified Text.DescriptorProtos.FieldOptions                   as D(FieldOptions) import qualified Text.DescriptorProtos.FieldOptions                   as D.FieldOptions(FieldOptions(..)) import qualified Text.DescriptorProtos.FileDescriptorProto            as D(FileDescriptorProto) import qualified Text.DescriptorProtos.FileDescriptorProto            as D.FileDescriptorProto(FileDescriptorProto(..))-import qualified Text.DescriptorProtos.FileOptions                    as D(FileOptions)+-- import qualified Text.DescriptorProtos.FileOptions                    as D(FileOptions) import qualified Text.DescriptorProtos.FileOptions                    as D.FileOptions(FileOptions(..))-import qualified Text.DescriptorProtos.MessageOptions                 as D(MessageOptions)+-- import qualified Text.DescriptorProtos.MessageOptions                 as D(MessageOptions) import qualified Text.DescriptorProtos.MessageOptions                 as D.MessageOptions(MessageOptions(..)) import qualified Text.DescriptorProtos.MethodDescriptorProto          as D(MethodDescriptorProto) import qualified Text.DescriptorProtos.MethodDescriptorProto          as D.MethodDescriptorProto(MethodDescriptorProto(..))-import qualified Text.DescriptorProtos.MethodOptions                  as D(MethodOptions)+-- import qualified Text.DescriptorProtos.MethodOptions                  as D(MethodOptions) import qualified Text.DescriptorProtos.MethodOptions                  as D.MethodOptions(MethodOptions(..)) import qualified Text.DescriptorProtos.ServiceDescriptorProto         as D(ServiceDescriptorProto) import qualified Text.DescriptorProtos.ServiceDescriptorProto         as D.ServiceDescriptorProto(ServiceDescriptorProto(..))-import qualified Text.DescriptorProtos.ServiceOptions                 as D(ServiceOptions)+-- import qualified Text.DescriptorProtos.ServiceOptions                 as D(ServiceOptions) import qualified Text.DescriptorProtos.ServiceOptions                 as D.ServiceOptions(ServiceOptions(..)) import qualified Text.DescriptorProtos.UninterpretedOption            as D(UninterpretedOption) import qualified Text.DescriptorProtos.UninterpretedOption            as D.UninterpretedOption(UninterpretedOption(..))-import qualified Text.DescriptorProtos.UninterpretedOption.NamePart   as D(NamePart)+-- import qualified Text.DescriptorProtos.UninterpretedOption.NamePart   as D(NamePart) import qualified Text.DescriptorProtos.UninterpretedOption.NamePart   as D.NamePart(NamePart(..))  import Text.ProtocolBuffers.Basic import Text.ProtocolBuffers.Identifiers-import Text.ProtocolBuffers.Header(ByteString,Int32,Int64,Word32,Word64-                                  ,ReflectEnum(reflectEnumInfo),enumName)+import Text.ProtocolBuffers.Header(ReflectEnum(reflectEnumInfo),enumName) import Text.ProtocolBuffers.ProtoCompile.Lexer(Lexed(..),alexScanTokens,getLinePos) import Text.ProtocolBuffers.ProtoCompile.Instances(parseLabel,parseType)-import Text.ProtocolBuffers.Reflections()+-- import Text.ProtocolBuffers.Reflections()  import Control.Monad(when,liftM2,liftM3) import qualified Data.ByteString.Lazy.Char8 as LC(notElem,head)@@ -367,7 +366,7 @@  defaultConstant LABEL_REPEATED _ = pName (U.fromString "default") >> fail "Repeated fields cannot have a default value" defaultConstant _ mt = do-  pName (U.fromString "default")+  _ <- pName (U.fromString "default")   maybeDefault <- pChar '=' >> fmap Just (constant mt)   -- XXX Hack: we lie about Utf8 for the default_value below   update' (\s -> s { D.FieldDescriptorProto.default_value = fmap Utf8 maybeDefault })@@ -519,7 +518,7 @@ rpc = pName (U.fromString "rpc") >> do   name <- ident1   input <- between (pChar '(') (pChar ')') ident1-  pName (U.fromString "returns")+  _ <- pName (U.fromString "returns")   output <- between (pChar '(') (pChar ')') ident1   let m1 = defaultValue { D.MethodDescriptorProto.name=Just name                         , D.MethodDescriptorProto.input_type=Just input
Text/ProtocolBuffers/ProtoCompile/Resolve.hs view
@@ -3,6 +3,10 @@    what about keys 'extendee' resolution to Message names only? expectM in entityField +  makeTopLevel is the main internal entry point in this module.+  This is called from loadProto' which has two callers:+  loadProto and loadCodeGenRequest+ -}  -- | This huge module handles the loading and name resolution.  The@@ -36,19 +40,19 @@ import qualified Text.DescriptorProtos.UninterpretedOption            as D.UninterpretedOption(UninterpretedOption(..)) import qualified Text.DescriptorProtos.UninterpretedOption.NamePart   as D(NamePart(NamePart)) import qualified Text.DescriptorProtos.UninterpretedOption.NamePart   as D.NamePart(NamePart(..))-import qualified Text.DescriptorProtos.EnumOptions      as D(EnumOptions)+-- import qualified Text.DescriptorProtos.EnumOptions      as D(EnumOptions) import qualified Text.DescriptorProtos.EnumOptions      as D.EnumOptions(EnumOptions(uninterpreted_option))-import qualified Text.DescriptorProtos.EnumValueOptions as D(EnumValueOptions)+-- import qualified Text.DescriptorProtos.EnumValueOptions as D(EnumValueOptions) import qualified Text.DescriptorProtos.EnumValueOptions as D.EnumValueOptions(EnumValueOptions(uninterpreted_option)) import qualified Text.DescriptorProtos.FieldOptions     as D(FieldOptions(FieldOptions)) import qualified Text.DescriptorProtos.FieldOptions     as D.FieldOptions(FieldOptions(packed,uninterpreted_option))-import qualified Text.DescriptorProtos.FileOptions      as D(FileOptions)+-- import qualified Text.DescriptorProtos.FileOptions      as D(FileOptions) import qualified Text.DescriptorProtos.FileOptions      as D.FileOptions(FileOptions(..))-import qualified Text.DescriptorProtos.MessageOptions   as D(MessageOptions)+-- import qualified Text.DescriptorProtos.MessageOptions   as D(MessageOptions) import qualified Text.DescriptorProtos.MessageOptions   as D.MessageOptions(MessageOptions(uninterpreted_option))-import qualified Text.DescriptorProtos.MethodOptions    as D(MethodOptions)+-- import qualified Text.DescriptorProtos.MethodOptions    as D(MethodOptions) import qualified Text.DescriptorProtos.MethodOptions    as D.MethodOptions(MethodOptions(uninterpreted_option))-import qualified Text.DescriptorProtos.ServiceOptions   as D(ServiceOptions)+-- import qualified Text.DescriptorProtos.ServiceOptions   as D(ServiceOptions) import qualified Text.DescriptorProtos.ServiceOptions   as D.ServiceOptions(ServiceOptions(uninterpreted_option))  import qualified Text.Google.Protobuf.Compiler.CodeGeneratorRequest as CGR@@ -69,10 +73,10 @@ import Data.Char import Data.Ratio import Data.Ix(inRange)-import Data.List(foldl',stripPrefix,lookup,isPrefixOf,isSuffixOf)-import Data.Map(Map, keys)+import Data.List(foldl',stripPrefix,isPrefixOf,isSuffixOf)+import Data.Map(Map) import Data.Maybe(mapMaybe)-import Data.Monoid(Monoid(..))+-- import Data.Monoid() import System.Directory import qualified System.FilePath as Local(pathSeparator,splitDirectories,joinPath,combine,makeRelative) import qualified System.FilePath.Posix as Canon(pathSeparator,splitDirectories,joinPath,takeBaseName)@@ -476,7 +480,7 @@   makeOne fdp = do     -- Create 'template' :: ProtoName using "Text.ProtocolBuffers.Identifiers"     let rawPackage = getPackage fdp-    lift (checkDIUtf8 rawPackage) -- guard-like effect+    _ <- lift (checkDIUtf8 rawPackage) -- guard-like effect     let packageName = difi (DIName rawPackage)     rawParent <- getJust "makeNameMap.makeOne: " . msum $         [ D.FileOptions.java_outer_classname =<< (D.FileDescriptorProto.options fdp)@@ -569,9 +573,13 @@ makeTopLevel fdp packageName imports = mdo   filePath <- getJust "makeTopLevel.filePath" (D.FileDescriptorProto.name fdp)   let sEnv = SEnv packageName global-      groupNames = mapMaybe validI . map toString . mapMaybe D.FieldDescriptorProto.type_name+      -- There should be no TYPE_GROUP in the extension list here, but to be safe:+      groupNamesRaw = map toString . mapMaybe D.FieldDescriptorProto.type_name                  . filter (maybe False (TYPE_GROUP ==) . D.FieldDescriptorProto.type')                   $ (F.toList . D.FileDescriptorProto.extension $ fdp)+      groupNamesI = mapMaybe validI groupNamesRaw+      groupNamesDI = mapMaybe validDI groupNamesRaw  -- These fully qualified names from using hprotoc as a plugin for protoc+      groupNames = groupNamesI ++ map (last . splitDI) groupNamesDI       isGroup = (`elem` groupNames)   global <- runSE sEnv (do     (bads,children) <- fmap unzip . sequence $@@ -600,15 +608,21 @@   *** -} +-- Fix this to look at groupNamesDI as well as the original list of groupNamesI.  This fixes a bug+-- in the plug-in usage because protoc will have already resolved the type_name to a fully qualified+-- name. entityMsg :: (IName String -> Bool) -> D.DescriptorProto -> SE (IName String,Entity) entityMsg isGroup dp = annErr ("entityMsg DescriptorProto name is "++show (D.DescriptorProto.name dp)) $ mdo   (self,names) <- getNames "entityMsg.name" D.DescriptorProto.name dp   numbers <- fmap Set.fromList . mapM (getJust "entityMsg.field.number" . D.FieldDescriptorProto.number) . F.toList . D.DescriptorProto.field $ dp   when (Set.size numbers /= Seq.length (D.DescriptorProto.field dp)) $     throwError $ "entityMsg.field.number: There must be duplicate field numbers for "++show names++"\n "++show numbers-  let groupNames = mapMaybe validI . map toString . mapMaybe D.FieldDescriptorProto.type_name-                 . filter (maybe False (TYPE_GROUP ==) . D.FieldDescriptorProto.type') -                 $ (F.toList . D.DescriptorProto.field $ dp) ++ (F.toList . D.DescriptorProto.extension $ dp)+  let groupNamesRaw = map toString . mapMaybe D.FieldDescriptorProto.type_name+                      . filter (maybe False (TYPE_GROUP ==) . D.FieldDescriptorProto.type') +                      $ (F.toList . D.DescriptorProto.field $ dp) ++ (F.toList . D.DescriptorProto.extension $ dp)+      groupNamesI = mapMaybe validI groupNamesRaw+      groupNamesDI = mapMaybe validDI groupNamesRaw  -- These fully qualified names from using hprotoc as a plugin for protoc+      groupNames = groupNamesI ++ map (last . splitDI) groupNamesDI       isGroup' = (`elem` groupNames)   entity <- descend names entity $ do     (bads,children) <- fmap unzip . sequence $@@ -661,7 +675,7 @@  entityEnumValue :: D.EnumValueDescriptorProto -> SE () entityEnumValue evdp = do -- Merely use getNames to add mangled self to ReMap state-  getNames "entityEnumValue.name" D.EnumValueDescriptorProto.name evdp+  _ <- getNames "entityEnumValue.name" D.EnumValueDescriptorProto.name evdp   return ()  entityService :: D.ServiceDescriptorProto -> SE (IName String,Entity)@@ -1105,7 +1119,7 @@             imports <- mapM (fmap getTL . load parents) importList             let eEnv = makeTopLevel parsed'fdp packageName imports             global'env <- either (loadFailed file) return eEnv-            either (loadFailed file) return (top'FDP . getTL $ global'env)+            _ <- either (loadFailed file) return (top'FDP . getTL $ global'env)             modify (M.insert file global'env) -- add to memorized results             return global'env 
hprotoc.cabal view
@@ -1,5 +1,5 @@ name:           hprotoc-version:        1.7.9+version:        1.8.0 cabal-version:  >= 1.6 build-type:     Simple license:        BSD3@@ -25,7 +25,7 @@   Hs-Source-Dirs:  .,protoc-gen-haskell   build-tools:     alex   ghc-options:     -O2 -Wall-  build-depends:   protocol-buffers == 1.7.9, protocol-buffers-descriptor == 1.7.9+  build-depends:   protocol-buffers == 1.8.0, protocol-buffers-descriptor == 1.8.0   build-depends:   binary, utf8-string   build-depends:   parsec < 3, haskell-src-exts >= 1.7.0,                    containers,bytestring,array,