From d2378812ce6e8c27ae02a7ca707c6ffa537858b1 Mon Sep 17 00:00:00 2001 From: Tiago Carvalho Date: Wed, 29 Jul 2020 23:15:22 +0100 Subject: [PATCH] bye --- IRC/Plugins/Loader.hs | 7 ++----- IRC/Plugins/Plugin.hs | 8 ++++++++ IRC/Plugins/Tupfile | 3 ++- Tupfile | 4 ++-- Tuprules.tup | 2 +- make.sh | 4 +++- 6 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 IRC/Plugins/Plugin.hs diff --git a/IRC/Plugins/Loader.hs b/IRC/Plugins/Loader.hs index 4d9dbc9..7199577 100644 --- a/IRC/Plugins/Loader.hs +++ b/IRC/Plugins/Loader.hs @@ -5,6 +5,8 @@ module IRC.Plugins.Loader ( load ) where import qualified Data.HashMap.Lazy as M +import IRC.Plugins.Plugin + import Control.Exception ( catch, ErrorCall ) import GHC.Exts ( addrToAny# ) import GHC.Ptr ( Ptr(..) ) @@ -12,11 +14,6 @@ import System.Info ( os, arch ) import GHCi.ObjLink import Encoding -type PluginSet = M.HashMap String Plugin - -data Plugin = Plugin { pluginEvent :: String, -- e.g. PRIVMSG - pluginEntry :: Int } - load :: PluginSet -> String -> IO (Either String PluginSet) load set path = do initObjLinker RetainCAFs diff --git a/IRC/Plugins/Plugin.hs b/IRC/Plugins/Plugin.hs new file mode 100644 index 0000000..fcfbca6 --- /dev/null +++ b/IRC/Plugins/Plugin.hs @@ -0,0 +1,8 @@ +module IRC.Plugins.Plugin ( PluginSet, Plugin(..) ) where + +import qualified Data.HashMap.Lazy as M + +type PluginSet = M.HashMap String Plugin + +data Plugin = Plugin { pluginEvent :: String, -- e.g. PRIVMSG + pluginEntry :: Int } diff --git a/IRC/Plugins/Tupfile b/IRC/Plugins/Tupfile index b3de054..c093483 100644 --- a/IRC/Plugins/Tupfile +++ b/IRC/Plugins/Tupfile @@ -1,3 +1,4 @@ include_rules -: foreach *.hs |> ghc $(GHCFLAGS) -c %f |> %B.o %B.hi +: Plugin.hs |> ghc $(GHCFLAGS) -c %f |> %B.o %B.hi +: Loader.hs | Plugin.hi |> ghc $(GHCFLAGS) -c %f |> %B.o %B.hi diff --git a/Tupfile b/Tupfile index ff85bcd..07a94d1 100644 --- a/Tupfile +++ b/Tupfile @@ -1,4 +1,4 @@ include_rules -: foreach *.hs | IRC/*.hi |> ghc $(GHCFLAGS) -c %f |> %B.o %B.hi -: *.o IRC/*.o |> ghc -o Main %f |> Main +: foreach *.hs | IRC/*.hi IRC/Plugins/*.hi |> ghc $(GHCFLAGS) -c %f |> %B.o %B.hi +: *.o IRC/*.o IRC/Plugins/*.o |> ghc -o Main %f |> Main diff --git a/Tuprules.tup b/Tuprules.tup index 2801544..46b130c 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -1 +1 @@ -GHCFLAGS += -Wall -O3 +GHCFLAGS += -i$(CWD) -Wall -O3 diff --git a/make.sh b/make.sh index 90722fc..3396279 100755 --- a/make.sh +++ b/make.sh @@ -9,6 +9,8 @@ if ! command -v tup >/dev/null; then exit 1 fi +export CWD="$(readlink -f .)" + case $1 in run) $0 build >&2 || exit 1 @@ -22,7 +24,7 @@ case $1 in tup >&2 ;; clean) - rm -f Main *.o *.hi IRC/*.o IRC/*.hi + rm -f Main *.o *.hi IRC/*.o IRC/*.hi IRC/Plugins/*.o IRC/Plugins/*.hi ;; *) usage