summaryrefslogtreecommitdiff
path: root/source/Felix/Parse.hs
diff options
context:
space:
mode:
Diffstat (limited to 'source/Felix/Parse.hs')
-rw-r--r--source/Felix/Parse.hs426
1 files changed, 87 insertions, 339 deletions
diff --git a/source/Felix/Parse.hs b/source/Felix/Parse.hs
index 751f09c..0a46d82 100644
--- a/source/Felix/Parse.hs
+++ b/source/Felix/Parse.hs
@@ -71,32 +71,14 @@ module Felix.Parse
, parsedWorkspaceModules
, parsedWorkspaceImportedBeforeImporter
, importedBeforeImporterBlocks
- , parseSourceWorkspace
- , ParseMeasurements
- , parseMeasurementResolutionNanoseconds
- , parseMeasurementTokenizationNanoseconds
- , parseMeasurementScanningNanoseconds
- , parseMeasurementSyntaxInterfaceNanoseconds
- , parseMeasurementParsingNanoseconds
- , parseMeasurementParsedHitCount
- , parseMeasurementParsedMissCount
- , parseMeasurementParserTableMaterializationCount
- , parseMeasurementModuleCount
- , parseMeasurementImportOccurrenceCount
- , parseMeasurementChunkCount
- , parseMeasurementSourceByteCount
- , parseMeasurementCandidateProbeCount
- , parseMeasurementCanonicalizationCount
- , parseMeasurementTargetInspectionCount
- , parseSourceWorkspaceMeasured
- , parseSourceWorkspaceMeasuredWithSyntaxInputs
- , parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidation
- , parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputs
- , parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidation
- , parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndCallback
- , parseSourceWorkspaceWith
+ , parseSourceWorkspaceWithSyntaxInputs
+ , parseSourceWorkspaceWithSyntaxInputsAndGraphValidation
+ , parseSourceWorkspaceWithStoreAndSyntaxInputs
+ , parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidation
+ , parseSourceWorkspaceWithStoreAndSyntaxInputsAndCallback
, parseResolvedSourceGraph
, parseResolvedSourceGraphWith
+ , parseResolvedSourceGraphWithStoreAndSyntaxInputsAndGraphValidation
) where
import Base
@@ -108,9 +90,9 @@ import Felix.Source
import Felix.Source.Content qualified as Content
import Felix.Source.Graph
import Felix.Store qualified as Store
-import Report.Location
-import Syntax.Abstract qualified as Raw
-import Syntax.Adapt
+import Felix.Report.Location
+import Felix.Syntax.Abstract qualified as Raw
+import Felix.Syntax.Adapt
( LexicalScanError(..)
, ScannedLexicalItem
, SyntaxMaterializationError(..)
@@ -119,11 +101,11 @@ import Syntax.Adapt
, scanChunk
, scannedItemMarker
)
-import Syntax.Concrete (grammar)
-import Syntax.Interface
-import Syntax.Lexicon (Lexicon)
-import Syntax.Pragma
-import Syntax.Token
+import Felix.Syntax.Concrete (grammar)
+import Felix.Syntax.Interface
+import Felix.Syntax.Lexicon (Lexicon)
+import Felix.Syntax.Pragma
+import Felix.Syntax.Token
import Control.DeepSeq (NFData, force)
import Control.Exception (Exception, evaluate)
@@ -1096,154 +1078,88 @@ data ModuleSyntaxContext = ModuleSyntaxContext
, syntaxContextImportedEntries :: !SyntaxEntryInventory
}
--- | Invocation-local parser work. A module is one strictly read source file.
-data ParseMeasurements = ParseMeasurements
- { parseMeasurementResolutionNanoseconds :: !Word64
- , parseMeasurementTokenizationNanoseconds :: !Word64
- , parseMeasurementScanningNanoseconds :: !Word64
- , parseMeasurementSyntaxInterfaceNanoseconds :: !Word64
- , parseMeasurementParsingNanoseconds :: !Word64
- , parseMeasurementParsedHitCount :: !Int
- , parseMeasurementParsedMissCount :: !Int
- , parseMeasurementParserTableMaterializationCount :: !Int
- , parseMeasurementModuleCount :: !Int
- , parseMeasurementImportOccurrenceCount :: !Int
- , parseMeasurementChunkCount :: !Int
- , parseMeasurementSourceByteCount :: !Word64
- , parseMeasurementCandidateProbeCount :: !Int
- , parseMeasurementCanonicalizationCount :: !Int
- , parseMeasurementTargetInspectionCount :: !Int
- }
- deriving stock (Show, Eq)
-
--- | Resolve, strictly load, and parse one source closure without callbacks.
---
--- Mounts and the root request are explicit. Resolution, loading, and location
--- registration perform filesystem and process-local registry I/O. This entry
--- point does not initialize checking, provers, logging, or rendering.
-parseSourceWorkspace
- :: SourceMounts
- -> RootRequest
- -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
-parseSourceWorkspace mounts request =
- parseSourceWorkspaceWith mounts request (\_source _block -> pure ())
-
-parseSourceWorkspaceMeasured
- :: SourceMounts
- -> RootRequest
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasured mounts request =
- parseSourceWorkspaceMeasuredWithSyntaxInputsAndCallback
- mounts
- request
- (const [])
- (\_source _block -> pure ())
-
-parseSourceWorkspaceMeasuredWithSyntaxInputs
+parseSourceWorkspaceWithSyntaxInputs
:: SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
+ -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
-- Implicit syntax inputs must be self-contained module interfaces.
-parseSourceWorkspaceMeasuredWithSyntaxInputs mounts request syntaxInputs =
- parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidation
+parseSourceWorkspaceWithSyntaxInputs mounts request syntaxInputs =
+ parseSourceWorkspaceWithSyntaxInputsAndGraphValidation
mounts
request
syntaxInputs
(const (Right ()))
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidation
+parseSourceWorkspaceWithSyntaxInputsAndGraphValidation
:: SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSourceGraph -> Either SourceError ())
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidation
+ -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
+parseSourceWorkspaceWithSyntaxInputsAndGraphValidation
mounts request syntaxInputs validateGraph =
- parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidationAndCallback
+ parseSourceWorkspaceWithSyntaxInputsAndGraphValidationAndCallback
mounts
request
syntaxInputs
validateGraph
(\_source _block -> pure ())
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputs
+parseSourceWorkspaceWithStoreAndSyntaxInputs
:: Store.Store
-> SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
- -> IO
- (Either
- ParseExecutionError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputs
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseSourceWorkspaceWithStoreAndSyntaxInputs
store mounts request syntaxInputs =
- parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidation
+ parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidation
store mounts request syntaxInputs (const (Right ()))
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidation
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidation
:: Store.Store
-> SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSourceGraph -> Either SourceError ())
- -> IO
- (Either
- ParseExecutionError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidation
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidation
store mounts request syntaxInputs validateGraph =
- parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidationAndCallback
+ parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidationAndCallback
store mounts request syntaxInputs validateGraph
(\_source _block -> pure ())
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndCallback
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndCallback
:: Store.Store
-> SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseExecutionError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndCallback
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndCallback
store mounts request syntaxInputs emitBlock = do
- parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidationAndCallback
+ parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidationAndCallback
store mounts request syntaxInputs (const (Right ())) emitBlock
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidationAndCallback
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidationAndCallback
:: Store.Store
-> SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSourceGraph -> Either SourceError ())
-> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseExecutionError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidationAndCallback
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseSourceWorkspaceWithStoreAndSyntaxInputsAndGraphValidationAndCallback
store mounts request syntaxInputs validateGraph emitBlock = do
- resolutionStart <- getMonotonicTimeNSec
- graphResult <- buildResolvedSourceGraphMeasured mounts request
- resolutionEnd <- getMonotonicTimeNSec
+ graphResult <- buildResolvedSourceGraph mounts request
case graphResult of
Left err ->
pure
(Left
(ParseExecutionWorkspaceError
(SourceWorkspaceError err)))
- Right (graph, selectionMeasurements) ->
+ Right graph ->
case validateGraph graph of
Left err ->
pure
@@ -1251,108 +1167,34 @@ parseSourceWorkspaceMeasuredWithStoreAndSyntaxInputsAndGraphValidationAndCallbac
(ParseExecutionWorkspaceError
(SourceWorkspaceError err)))
Right () ->
- fmap
- (fmap
- (\(workspace, measurements) ->
- ( workspace
- , withResolutionMeasurements
- measurements
- (resolutionEnd - resolutionStart)
- selectionMeasurements
- )))
- (parseResolvedSourceGraphMeasuredWithArtifacts
- (PersistentParsedArtifacts store)
- graph
- syntaxInputs
- emitBlock)
-
--- | Resolve, strictly load, and parse one source closure with a block
--- callback.
---
--- The callback may perform arbitrary I/O. It runs in deterministic source and
--- chunk order, and callbacks for earlier blocks may have completed when a
--- later parse fails. Callback exceptions propagate to the caller.
-parseSourceWorkspaceWith
- :: SourceMounts
- -> RootRequest
- -> (ResolvedSource -> Raw.Block -> IO ())
- -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
-parseSourceWorkspaceWith mounts request emitBlock = do
- fmap (fmap fst)
- (parseSourceWorkspaceMeasuredWith
- mounts
- request
- emitBlock)
+ parseResolvedSourceGraphWithArtifacts
+ (PersistentParsedArtifacts store)
+ graph
+ syntaxInputs
+ emitBlock
-parseSourceWorkspaceMeasuredWith
- :: SourceMounts
- -> RootRequest
- -> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWith mounts request emitBlock = do
- parseSourceWorkspaceMeasuredWithSyntaxInputsAndCallback
- mounts
- request
- (const [])
- emitBlock
-
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndCallback
- :: SourceMounts
- -> RootRequest
- -> (ResolvedSource -> [ModuleSyntaxInterface])
- -> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndCallback
- mounts request syntaxInputs emitBlock = do
- parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidationAndCallback
- mounts request syntaxInputs (const (Right ())) emitBlock
-
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidationAndCallback
+parseSourceWorkspaceWithSyntaxInputsAndGraphValidationAndCallback
:: SourceMounts
-> RootRequest
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSourceGraph -> Either SourceError ())
-> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseSourceWorkspaceMeasuredWithSyntaxInputsAndGraphValidationAndCallback
+ -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
+parseSourceWorkspaceWithSyntaxInputsAndGraphValidationAndCallback
mounts request syntaxInputs validateGraph emitBlock = do
- resolutionStart <- getMonotonicTimeNSec
- graphResult <- buildResolvedSourceGraphMeasured mounts request
- resolutionEnd <- getMonotonicTimeNSec
+ graphResult <- buildResolvedSourceGraph mounts request
case graphResult of
Left err ->
pure (Left (SourceWorkspaceError err))
- Right (graph, selectionMeasurements) ->
+ Right graph ->
case validateGraph graph of
Left err ->
pure (Left (SourceWorkspaceError err))
Right () ->
- fmap
- (fmap
- (\(workspace, measurements) ->
- let
- -- Resolution includes source loading and
- -- import scanning for graph construction.
- measured =
- withResolutionMeasurements
- measurements
- (resolutionEnd - resolutionStart)
- selectionMeasurements
- in
- (workspace, measured)))
- (parseResolvedSourceGraphMeasuredWith
- graph
- syntaxInputs
- emitBlock)
+ parseResolvedSourceGraphWithSyntaxInputs
+ graph
+ syntaxInputs
+ emitBlock
parseResolvedSourceGraph
:: ResolvedSourceGraph
@@ -1372,23 +1214,40 @@ parseResolvedSourceGraphWith
-> (ResolvedSource -> Raw.Block -> IO ())
-> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
parseResolvedSourceGraphWith graph emitBlock =
- fmap (fmap fst)
- (parseResolvedSourceGraphMeasuredWith
- graph
- (const [])
- emitBlock)
+ parseResolvedSourceGraphWithSyntaxInputs
+ graph
+ (const [])
+ emitBlock
-parseResolvedSourceGraphMeasuredWith
+parseResolvedSourceGraphWithStoreAndSyntaxInputsAndGraphValidation
+ :: Store.Store
+ -> ResolvedSourceGraph
+ -> (ResolvedSource -> [ModuleSyntaxInterface])
+ -> (ResolvedSourceGraph -> Either SourceError ())
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseResolvedSourceGraphWithStoreAndSyntaxInputsAndGraphValidation
+ store graph syntaxInputs validateGraph =
+ case validateGraph graph of
+ Left err ->
+ pure
+ (Left
+ (ParseExecutionWorkspaceError
+ (SourceWorkspaceError err)))
+ Right () ->
+ parseResolvedSourceGraphWithArtifacts
+ (PersistentParsedArtifacts store)
+ graph
+ syntaxInputs
+ (\_source _block -> pure ())
+
+parseResolvedSourceGraphWithSyntaxInputs
:: ResolvedSourceGraph
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseWorkspaceError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseResolvedSourceGraphMeasuredWith graph syntaxInputs emitBlock =
+ -> IO (Either ParseWorkspaceError ParsedSourceWorkspace)
+parseResolvedSourceGraphWithSyntaxInputs graph syntaxInputs emitBlock =
fmap unwrapUncachedExecution
- (parseResolvedSourceGraphMeasuredWithArtifacts
+ (parseResolvedSourceGraphWithArtifacts
UncachedParsedArtifacts
graph
syntaxInputs
@@ -1411,16 +1270,13 @@ unwrapUncachedExecution = \case
Right value ->
Right value
-parseResolvedSourceGraphMeasuredWithArtifacts
+parseResolvedSourceGraphWithArtifacts
:: ParsedArtifactAccess
-> ResolvedSourceGraph
-> (ResolvedSource -> [ModuleSyntaxInterface])
-> (ResolvedSource -> Raw.Block -> IO ())
- -> IO
- (Either
- ParseExecutionError
- (ParsedSourceWorkspace, ParseMeasurements))
-parseResolvedSourceGraphMeasuredWithArtifacts
+ -> IO (Either ParseExecutionError ParsedSourceWorkspace)
+parseResolvedSourceGraphWithArtifacts
artifactAccess graph syntaxInputs emitBlock =
runExceptT do
let orderedNodes =
@@ -1449,61 +1305,17 @@ parseResolvedSourceGraphMeasuredWithArtifacts
(SourceWorkspaceError
(SourceGraphInvariantViolation
"source graph produced no parsed modules")))
- let measurements =
- ParseMeasurements
- { parseMeasurementResolutionNanoseconds =
- 0
- , parseMeasurementTokenizationNanoseconds =
- moduleParseTokenizationNanoseconds completed
- , parseMeasurementScanningNanoseconds =
- moduleParseScanningNanoseconds completed
- , parseMeasurementSyntaxInterfaceNanoseconds =
- moduleParseSyntaxNanoseconds completed
- , parseMeasurementParsingNanoseconds =
- moduleParseParsingNanoseconds completed
- , parseMeasurementParsedHitCount =
- moduleParseHitCount completed
- , parseMeasurementParsedMissCount =
- moduleParseMissCount completed
- , parseMeasurementParserTableMaterializationCount =
- moduleParseParserTableCount completed
- , parseMeasurementModuleCount =
- NonEmpty.length orderedNodes
- , parseMeasurementImportOccurrenceCount =
- length (sourceGraphImportEdges graph)
- , parseMeasurementChunkCount =
- moduleParseChunkCount completed
- , parseMeasurementSourceByteCount =
- sum
- (loadedByteCount
- . sourceNodeLoaded
- <$> NonEmpty.toList orderedNodes)
- , parseMeasurementCandidateProbeCount = 0
- , parseMeasurementCanonicalizationCount = 0
- , parseMeasurementTargetInspectionCount = 0
- }
- pure
- ( ParsedSourceWorkspace parsedModules
- , measurements
- )
+ pure (ParsedSourceWorkspace parsedModules)
data ModuleParseState = ModuleParseState
{ moduleParsePrepared
:: !(Map ResolvedSourceAddress PreparedSyntaxModule)
, moduleParseReversed :: ![ParsedModule]
- , moduleParseTokenizationNanoseconds :: !Word64
- , moduleParseScanningNanoseconds :: !Word64
- , moduleParseSyntaxNanoseconds :: !Word64
- , moduleParseParsingNanoseconds :: !Word64
- , moduleParseChunkCount :: !Int
- , moduleParseHitCount :: !Int
- , moduleParseMissCount :: !Int
- , moduleParseParserTableCount :: !Int
}
emptyModuleParseState :: ModuleParseState
emptyModuleParseState =
- ModuleParseState Map.empty [] 0 0 0 0 0 0 0 0
+ ModuleParseState Map.empty []
parseOneModule
:: ParsedArtifactAccess
@@ -1568,25 +1380,17 @@ parseAndPublishFreshModule
-> ExceptT ParseExecutionError IO ModuleParseState
parseAndPublishFreshModule artifactAccess emitBlock moduleIndex node imports
context expectedKey state = do
- tokenizationStart <- liftIO getMonotonicTimeNSec
tokenized <- withExceptT ParseExecutionWorkspaceError
(ExceptT (tokenizeModule node imports))
- tokenizationEnd <- liftIO getMonotonicTimeNSec
- scanningStart <- liftIO getMonotonicTimeNSec
scanned <- withExceptT ParseExecutionWorkspaceError
(scanTokenizedModule tokenized)
- scanningEnd <- liftIO getMonotonicTimeNSec
- syntaxStart <- liftIO getMonotonicTimeNSec
runtime <- liftWorkspaceEither
(prepareFreshRuntimeSyntaxModule
moduleIndex
context
scanned)
- syntaxEnd <- liftIO getMonotonicTimeNSec
- parsingStart <- liftIO getMonotonicTimeNSec
parsed <- withExceptT ParseExecutionWorkspaceError
(parseScannedModule emitBlock runtime scanned)
- parsingEnd <- liftIO getMonotonicTimeNSec
unless
(parsedModuleKey parsed == expectedKey)
(throwE
@@ -1635,25 +1439,6 @@ parseAndPublishFreshModule artifactAccess emitBlock moduleIndex node imports
Map.insert address prepared (moduleParsePrepared state)
, moduleParseReversed =
parsed : moduleParseReversed state
- , moduleParseTokenizationNanoseconds =
- moduleParseTokenizationNanoseconds state
- + tokenizationEnd - tokenizationStart
- , moduleParseScanningNanoseconds =
- moduleParseScanningNanoseconds state
- + scanningEnd - scanningStart
- , moduleParseSyntaxNanoseconds =
- moduleParseSyntaxNanoseconds state
- + syntaxEnd - syntaxStart
- , moduleParseParsingNanoseconds =
- moduleParseParsingNanoseconds state
- + parsingEnd - parsingStart
- , moduleParseChunkCount =
- moduleParseChunkCount state
- + tokenizedModuleChunkCount tokenized
- , moduleParseMissCount =
- moduleParseMissCount state + 1
- , moduleParseParserTableCount =
- moduleParseParserTableCount state + 1
}
liftWorkspaceEither
@@ -1674,7 +1459,6 @@ installCachedModule
-> ExceptT ParseExecutionError IO ModuleParseState
installCachedModule emitBlock moduleIndex node imports context key artifact
state = do
- syntaxStart <- liftIO getMonotonicTimeNSec
let source = sourceNodeResolved node
loaded = sourceNodeLoaded node
payload = Parsed.parsedArtifactPayload artifact
@@ -1726,7 +1510,6 @@ installCachedModule emitBlock moduleIndex node imports context key artifact
(Parsed.parsedArtifactId artifact)
parsed = ParsedModule loaded imports identified
forced <- liftIO (evaluate (force parsed))
- syntaxEnd <- liftIO getMonotonicTimeNSec
liftIO
(forM_
(parsedModuleBlocks forced)
@@ -1745,14 +1528,6 @@ installCachedModule emitBlock moduleIndex node imports context key artifact
Map.insert address prepared (moduleParsePrepared state)
, moduleParseReversed =
forced : moduleParseReversed state
- , moduleParseSyntaxNanoseconds =
- moduleParseSyntaxNanoseconds state
- + syntaxEnd - syntaxStart
- , moduleParseChunkCount =
- moduleParseChunkCount state
- + length (Parsed.decodedParsedBlocks decoded)
- , moduleParseHitCount =
- moduleParseHitCount state + 1
}
throwIntegrity
@@ -1933,33 +1708,6 @@ classifyCachedSyntaxItem importedEntries importedIndex site entry =
_ ->
Right (EmitSyntaxEntry entry)
-withResolutionMeasurements
- :: ParseMeasurements
- -> Word64
- -> SourceSelectionMeasurements
- -> ParseMeasurements
-withResolutionMeasurements
- measurements
- resolution
- selectionMeasurements =
- measurements
- { parseMeasurementResolutionNanoseconds =
- resolution
- , parseMeasurementCandidateProbeCount =
- sourceSelectionCandidateProbeCount selectionMeasurements
- , parseMeasurementCanonicalizationCount =
- sourceSelectionCanonicalizationCount
- selectionMeasurements
- , parseMeasurementTargetInspectionCount =
- sourceSelectionTargetInspectionCount
- selectionMeasurements
- }
-
-tokenizedModuleChunkCount :: TokenizedModule -> Int
-tokenizedModuleChunkCount
- (TokenizedModule _node _imports _pragmas chunks) =
- length chunks
-
tokenizeModule
:: SourceNode
-> [ParsedModuleImport]