Skip to content

Commit

Permalink
FIXME: trying absolute paths in cabal file to find the .so but with n…
Browse files Browse the repository at this point in the history
…o luck

at least, the .o is fetched in a reasonable way now

this also tries to compile RTS from the plugin, but local experiments
doesn't seem to show it having any effect, unfortunately
  • Loading branch information
ulysses4ever committed Jun 21, 2024
1 parent 2db208c commit 1c8b146
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 11 deletions.
1 change: 1 addition & 0 deletions gibbon-compiler/src/Gibbon/Compiler.hs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module Gibbon.Compiler
, configParser, configWithArgs, defaultConfig
-- * Some other helper fns
, compileAndRunExe
, getRTSBuildDir, compileRTS
)
where

Expand Down
15 changes: 9 additions & 6 deletions gibbon-ghc-integration/examples/gibbon-examples.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ library
-dcore-lint
-ddump-simpl -dsuppress-all -ddump-to-file

include-dirs: "../../gibbon-rts/build"
extra-lib-dirs: "../../gibbon-rts/build"
-- include-dirs: "../../gibbon-rts/build"
-- extra-lib-dirs: "../../gibbon-rts/build"
extra-libraries: gibbon_rts_ng
extra-lib-dirs: /home/artem/data/Dev/gibbon/gibbon/gibbon-rts/build


executable run-gibbon-examples
Expand All @@ -44,8 +45,10 @@ executable run-gibbon-examples
build-depends: base, gibbon-examples, binary, bytestring, deepseq, time
ghc-options: -O2
-dcore-lint
include-dirs: "../../gibbon-rts/build"
extra-lib-dirs: "../../gibbon-rts/build"
-- include-dirs: "../../gibbon-rts/build"
-- extra-lib-dirs: "../../gibbon-rts/build"
extra-libraries: gibbon_rts_ng
-- ghc-options: "-optl-Wl,-I/home/ckoparka/chai/tree-velocity/gibbon-rts/build"
-- "-optl-Wl,-L/home/ckoparka/chai/tree-velocity/gibbon-rts/build"
extra-lib-dirs: /home/artem/data/Dev/gibbon/gibbon/gibbon-rts/build
ghc-options:
-- "-optl-Wl,-I/home/ckoparka/chai/tree-velocity/gibbon-rts/build"
"-optl-Wl,-L/home/artem/data/Dev/gibbon/gibbon/gibbon-rts/build"
16 changes: 11 additions & 5 deletions gibbon-ghc-integration/gibbon-plugin/src/Gibbon/Plugin.hs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ gibbonPlugin mod_guts = do

-- (5) Link the .o file in the module.
let objfile = replaceExtension fp ".o"
let rtsfile = "/home/ckoparka/chai/tree-velocity/gibbon-rts/build/gibbon_rts.o"
GHC.liftIO $ Gib.compileRTS gibbonConfigForPlugin
lib_dir <- GHC.liftIO Gib.getRTSBuildDir
let rtsfile = lib_dir </> "gibbon_rts.o"
let mod_guts' = mod_guts { GHC.mg_foreign_files = (GHC.mg_foreign_files mod_guts)
++ [ ( GHC.RawObject, objfile)
, ( GHC.RawObject, rtsfile)
Expand Down Expand Up @@ -128,14 +130,18 @@ gibbonPlugin mod_guts = do

--------------------------------------------------------------------------------

gibbonConfigForPlugin :: Gib.Config
gibbonConfigForPlugin = let
config = Gib.defaultConfig { Gib.mode = Gib.Library (Gib.toVar "xxx") }
dflags' = Gib.gopt_set Gib.Opt_DisableGC $ Gib.gopt_set Gib.Opt_Packed (Gib.dynflags config)
in
config { Gib.dynflags = dflags', Gib.optc = " -O3 " }

generateObjectFile :: Gib.Prog0 -> IO FilePath
generateObjectFile l0 = do
let config = Gib.defaultConfig { Gib.mode = Gib.Library (Gib.toVar "xxx") }
let dflags' = Gib.gopt_set Gib.Opt_DisableGC $ Gib.gopt_set Gib.Opt_Packed (Gib.dynflags config)
let config' = config { Gib.dynflags = dflags', Gib.optc = " -O3 " }
uniq <- randomIO :: IO Word16
let fp = "/tmp/gibbon-ghc-integration-file-" ++ show uniq ++ ".hs"
Gib.compileFromL0 config' 0 fp l0
Gib.compileFromL0 gibbonConfigForPlugin 0 fp l0
return fp

--------------------------------------------------------------------------------
Expand Down

0 comments on commit 1c8b146

Please sign in to comment.