Commit e26bfe83 authored by simonmar's avatar simonmar
Browse files

[project @ 2003-01-06 14:40:04 by simonmar]

Disable the version check on the .hi file for --show-iface.  This
means that it can be used on .hi files for other "ways" (eg. profiled)
without having to resort to using the undocumented -buildtag option.
parent 9490f5ce
......@@ -5,7 +5,7 @@
--
-- Binary interface file support.
module BinIface ( writeBinIface, readBinIface ) where
module BinIface ( writeBinIface, readBinIface, v_IgnoreHiVersion ) where
#include "HsVersions.h"
......@@ -32,8 +32,9 @@ import CmdLineOpts ( opt_IgnoreIfacePragmas, opt_HiVersion )
import Panic
import SrcLoc
import Binary
import Util
import DATA_IOREF ( readIORef )
import DATA_IOREF
import EXCEPTION ( throwDyn )
import Monad ( when )
......@@ -354,9 +355,10 @@ instance Binary ParsedIface where
lazyPut bh deprecs
get bh = do
check_ver <- get bh
ignore_ver <- readIORef v_IgnoreHiVersion
build_tag <- readIORef v_Build_tag
let our_ver = show opt_HiVersion ++ build_tag
when (check_ver /= our_ver) $
when (check_ver /= our_ver && not ignore_ver) $
-- use userError because this will be caught by readIface
-- which will emit an error msg containing the iface module name.
throwDyn (ProgramError (
......@@ -388,6 +390,8 @@ instance Binary ParsedIface where
pi_rules = rules,
pi_deprecs = deprecs })
GLOBAL_VAR(v_IgnoreHiVersion, False, Bool)
-- ----------------------------------------------------------------------------
{-* Generated by DrIFT-v1.0 : Look, but Don't Touch. *-}
......
......@@ -65,11 +65,12 @@ import Module ( Module, ModuleName, moduleNameFS, moduleName, isHomeModule,
import Outputable
import Util ( sortLt, dropList, seqList )
import Binary ( getBinFileWithDict )
import BinIface ( writeBinIface )
import BinIface ( writeBinIface, v_IgnoreHiVersion )
import ErrUtils ( dumpIfSet_dyn )
import FiniteMap
import FastString
import DATA_IOREF ( writeIORef )
import Monad ( when )
import Maybe ( catMaybes, isJust, isNothing )
import Maybes ( orElse )
......@@ -86,6 +87,9 @@ import IO ( putStrLn )
\begin{code}
showIface :: FilePath -> IO ()
showIface filename = do
-- skip the version check; we don't want to worry about profiled vs.
-- non-profiled interfaces, for example.
writeIORef v_IgnoreHiVersion True
parsed_iface <- Binary.getBinFileWithDict filename
let ParsedIface{
pi_mod=pi_mod, pi_pkg=pi_pkg, pi_vers=pi_vers,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment