packages feed

plugins-multistage 0.4 → 0.4.0.1

raw patch · 2 files changed

+7/−5 lines, 2 files

Files

plugins-multistage.cabal view
@@ -1,5 +1,5 @@ name:           plugins-multistage-version:        0.4+version:        0.4.0.1 synopsis:       Dynamic linking for embedded DSLs with staged compilation description:    Dynamic compilation, linking and loading of functions in                 staged languages.
src/System/Plugins/MultiStage.hs view
@@ -55,6 +55,7 @@                      , prefix       :: String                      , wdir         :: String                      , opts         :: [String]+                     , safety       :: Safety                      }  defaultConfig :: Config@@ -67,6 +68,7 @@                        , prefix       = "c_"                        , wdir         = "tmp"                        , opts         = []+                       , safety       = unsafe                        }  noBuilder :: Config -> Name -> Q Body@@ -101,7 +103,7 @@  declareWorker :: Config -> Name -> Name -> [Name] -> Type -> [DecQ] declareWorker conf@Config{..} wname name as typ =-    [ declareImport factory csig+    [ declareImport conf factory csig     , sigD bname $ appT [t|Ptr|] csig     , funD bname [clause [] (builder conf name) []]     , sigD rname csig@@ -123,9 +125,9 @@     , funD cname [clause (map varP as) (wrapper wname as) [] ]     ] -declareImport :: Name -> TypeQ -> DecQ-declareImport name csig =-    forImpD cCall safe "dynamic" name [t|FunPtr $(csig) -> $(csig)|]+declareImport :: Config -> Name -> TypeQ -> DecQ+declareImport Config{..} name csig =+    forImpD cCall safety "dynamic" name [t|FunPtr $(csig) -> $(csig)|]  wrapper :: Name -> [Name] -> Q Body wrapper workername args = normalB