Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
5cd20c40
Commit
5cd20c40
authored
Aug 23, 2010
by
simonpj@microsoft.com
Browse files
The templateHaskellOk check should only run in stage2
Because rtsIsProfiled is only available in stage2
parent
fd316eba
Changes
1
Show whitespace changes
Inline
Side-by-side
compiler/main/DynFlags.hs
View file @
5cd20c40
...
...
@@ -61,7 +61,12 @@ module DynFlags (
-- * Compiler configuration suitable for display to the user
Printable
(
..
),
compilerInfo
,
rtsIsProfiled
compilerInfo
#
ifdef
GHCI
-- Only in stage 2 can we be sure that the RTS
-- exposes the appropriate runtime boolean
,
rtsIsProfiled
#
endif
)
where
#
include
"HsVersions.h"
...
...
@@ -1810,12 +1815,13 @@ glasgowExtsFlags = [
,
Opt_GeneralizedNewtypeDeriving
,
Opt_TypeFamilies
]
#
ifdef
GHCI
-- Consult the RTS to find whether GHC itself has been built profiled
-- If so, you can't use Template Haskell
foreign
import
ccall
unsafe
"rts_isProfiled"
rtsIsProfiledIO
::
IO
CInt
rtsIsProfiled
::
Bool
rtsIsProfiled
=
False
--
unsafePerformIO rtsIsProfiledIO /= 0
rtsIsProfiled
=
unsafePerformIO
rtsIsProfiledIO
/=
0
checkTemplateHaskellOk
::
Bool
->
DynP
()
checkTemplateHaskellOk
turn_on
...
...
@@ -1823,6 +1829,12 @@ checkTemplateHaskellOk turn_on
=
addErr
"You can't use Template Haskell with a profiled compiler"
|
otherwise
=
return
()
#
else
-- In stage 1 we don't know that the RTS has rts_isProfiled,
-- so we simply say "ok". It doesn't matter because TH isn't
-- available in stage 1 anyway.
checkTemplateHaskellOk
turn_on
=
return
()
#
endif
{- **********************************************************************
%* *
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment