Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alex D
GHC
Commits
29b3388f
Commit
29b3388f
authored
Mar 01, 2007
by
Simon Marlow
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix -keep-s-file with --make
parent
89692d03
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
+13
-6
compiler/main/DriverPipeline.hs
compiler/main/DriverPipeline.hs
+13
-6
No files found.
compiler/main/DriverPipeline.hs
View file @
29b3388f
...
...
@@ -75,7 +75,8 @@ import System.Environment
preprocess
::
DynFlags
->
(
FilePath
,
Maybe
Phase
)
->
IO
(
DynFlags
,
FilePath
)
preprocess
dflags
(
filename
,
mb_phase
)
=
ASSERT2
(
isJust
mb_phase
||
isHaskellSrcFilename
filename
,
text
filename
)
runPipeline
anyHsc
dflags
(
filename
,
mb_phase
)
Temporary
Nothing
{-no ModLocation-}
runPipeline
anyHsc
dflags
(
filename
,
mb_phase
)
Nothing
Temporary
Nothing
{-no ModLocation-}
-- ---------------------------------------------------------------------------
-- Compile
...
...
@@ -169,7 +170,9 @@ compile hsc_env mod_summary maybe_old_linkable old_iface mod_index nmods = do
->
return
(
[]
,
ms_hs_date
mod_summary
)
-- We're in --make mode: finish the compilation pipeline.
_other
->
do
runPipeline
StopLn
dflags
(
output_fn
,
Nothing
)
Persistent
->
do
runPipeline
StopLn
dflags
(
output_fn
,
Nothing
)
(
Just
basename
)
Persistent
(
Just
location
)
-- The object filename comes from the ModLocation
o_time
<-
getModificationTime
object_filename
...
...
@@ -238,7 +241,7 @@ compileStub dflags mod location = do
-- compile the _stub.c file w/ gcc
let
(
stub_c
,
_
)
=
mkStubPaths
dflags
(
moduleName
mod
)
location
runPipeline
StopLn
dflags
(
stub_c
,
Nothing
)
runPipeline
StopLn
dflags
(
stub_c
,
Nothing
)
Nothing
(
SpecificFile
stub_o
)
Nothing
{-no ModLocation-}
return
stub_o
...
...
@@ -361,7 +364,8 @@ compileFile dflags stop_phase (src, mb_phase) = do
other
->
stop_phase
(
_
,
out_file
)
<-
runPipeline
stop_phase'
dflags
(
src
,
mb_phase
)
output
Nothing
{-no ModLocation-}
(
src
,
mb_phase
)
Nothing
output
Nothing
{-no ModLocation-}
return
out_file
...
...
@@ -407,13 +411,16 @@ runPipeline
::
Phase
-- When to stop
->
DynFlags
-- Dynamic flags
->
(
FilePath
,
Maybe
Phase
)
-- Input filename (and maybe -x suffix)
->
Maybe
FilePath
-- original basename (if different from ^^^)
->
PipelineOutput
-- Output filename
->
Maybe
ModLocation
-- A ModLocation, if this is a Haskell module
->
IO
(
DynFlags
,
FilePath
)
-- (final flags, output filename)
runPipeline
stop_phase
dflags
(
input_fn
,
mb_phase
)
output
maybe_loc
runPipeline
stop_phase
dflags
(
input_fn
,
mb_phase
)
mb_basename
output
maybe_loc
=
do
let
(
basename
,
suffix
)
=
splitFilename
input_fn
let
(
input_basename
,
suffix
)
=
splitFilename
input_fn
basename
|
Just
b
<-
mb_basename
=
b
|
otherwise
=
input_basename
-- If we were given a -x flag, then use that phase to start from
start_phase
=
fromMaybe
(
startPhase
suffix
)
mb_phase
...
...
Write
Preview
Markdown
is supported
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