Summary: 1273 instances, 1102 unique Text Count // TODO: Right now, DScript enumerates a directory and then calls this method to track the directory. 1 // TODO: const a : MyType = { } 1 /// TODO: We only have this mode to support . 1 // TODO: This may have performance issues if there are a lot of files that needs to be changed. 1 /// TODO: Current instantiation logic is not very DScript V2 friendly. 1 // TODO: Once write-behind is implemented send a contentstorefunc down to the create. 1 // TODO: remove this logic when we stop supporting the legacy configuration keyword 1 // TODO:enable!!!!! This will breaks some Typescript tests. 1 // TODO: Directory operation through NtCreateFile needs to be reviewed based on olkonone's work. 1 // TODO: Hack! Hack! 1 // TODO: Optimize 1 AppendModuleSpecifier(node); // TODO: revisit 1 /// TODO: This is set via magic. 1 // TODO: In the future we may want users to specify the packages/projects explicitly, or via explicit glob. 1 // TODO: prelude doesn't have this member. 1 // TODO: For now we estimate the size of remotely downloaded content as the sum of output sizes 1 CallSignatures = new List(callSignatures ?? Enumerable.Empty()), // TODO: Verify correctness 1 // TODO: does it make sense to consider enumerations, or as a result the graph will be too unstable? Does it matter for MsBuild graph construction? 1 // TODO:365262 - add index check for g_arrPolynomialsXX (static assert) 1 // TODO: Perhaps should have a specific access check for enumeration. 1 // TODO:add the following APIs 1 /// TODO: Capture and serialize/deserialize file access violations. 1 // TODO: Should we maintain the case of the source file? 1 // TODO: These conversions are silly. 1 // TODO:SQ: Use name.Kind? 1 // TODO: Change hardlink count return type to ulong. 1 /// TODO: Handle targeting of different stores. (bug 1365340) 1 // TODO: There should be only one assembly name for a csproj file 2 | join kind=leftouter ( // TODO: don't know why I needed ot use leftouter.... 1 // TODO: saqadri - Port 3 Number.IsNumericLiteralName(name.Cast().Text); // TODO: Verify correctness! How can we guarantee name is IIdentifier here? 1 /// TODO: Unify with HexUtilities on the cache side 1 // TODO: check if the tests are overspecified because in practice BuildXL doesn't really rely much on the outcome of this check 1 // TODO:replace with Detoured_FindFirstFileW below 1 // TODO: Respect ShouldDenyAccess for directoryAccessCheck. 1 // TODO: This approach is not specific to the 'latest or earliest possible' criterion - 'version dispositon'; consider 1 // TODO: remove at some later point 1 // TODO: How do we know that node.Parent.Parent derives from IDeclaration? 1 // TODO:SQ: HasImplicitReturn flag affects string output (see DScriptNodeUtilities.ToDisplayString())! 1 // TODO: user override is not really working now. Fix me! 1 // TODO: this struct has a tons of code duplication with Possible 1 // TODO:escape quotes properly 1 // TODO: TaggedTemplateExpressions may eventually support type arguments. 1 // TODO: change to a regular BuildXLWriter when we start serializing the qualifier table 1 // TODO: Verify correctness! Original TS code has unsafe cast in cast that node is MethodDeclaration 1 /// TODO: This will not return correct results w.r.t. meta-pips, e.g. spec file pips. Need to get meta-pips ordered correctly (i.e., add them topologically). 1 /// TODO: Consider exposing an AbsolutePath as part of ISourceFile. We are doing to many conversions back and forth between string and AbsolutePath 1 // TODO:SQ - return Unit type 1 /// TODO: This report type is not used anywhere and is not supported by . 1 // TODO: It'd be nice if PipData could instead write encoded bytes to a stream, in which case we could 1 // TODO: Consider if we should just rename AllowedEnvironmentVars and support default values for them. 1 // TODO: maybe the static graph API can provide this information in the future in a more native way 1 // TODO: TaggedTemplateExpressions may eventually support type arguments. 1 // TODO:365262 consider use utility routine 1 // TODO: Verify correctness/equivalence. Ported from core.ts 2 // TODO: Use CloudStore HashingStream when it can work with MemoryStream destination. 1 // TODO: Should this also happen in the event we have a fully constructed engine schedule, but e.g. evaluation failures? 1 // TODO: This is odd. Could just do new List(typeParameters.Count)... 1 /// TODO: Remove this! 2 // TODO: Not handling moves to or from PC 1 // if (satisfiable == candidate) { // TODO: We have to lie about equality! 1 // - The new process does not inherit any handles (TODO: If needed, one could allow explicit handle inheritance here). 1 // TODO: Shouldn't be doing a tracking probe here; instead should just make the store operation allow absence. 1 return inferences.Primary ?? (inferences.Secondary ?? /*TODO:emptyArray*/new List()); 1 // TODO: use string.Equals for string comparison in if-clause 1 // TODO: Having contract exception because our API is not bullet-proof is incovenient for users. 1 // TODO: Optimize this for look-up miss cases (there can be tons of them). 1 // TODO: Regex. Should we follow ECMA, C#, JavaScript? 1 // TODO: fill the data 2 // TODO: Should verify we opened a directory (FILE_ATTRIBUTE_DIRECTORY) 1 // TODO: this is not a typescript way! Maybe we can extract common interface for ISourceFile and IModuleBlock (that will hold Statements)! 1 //TODO: place the BuildXL error here. This is an infrastructure error 1 // TODO: This parallel loop takes 20% of the (sequential) deserialization time; make faster. 1 // TODO: Make worker reported time nested under AwaitRemoteResult operation 1 // TODO: this is inherently unsafe and can throw for many reasons because it requires that type.Name is a valid identifier! 1 /* TODO: not capturing process args yet for fear they will blow up in storage. Look at a better encoding? 1 /// TODO: potentially we can use the same logic for 'ErrorValue' as well. 1 // TODO: saqadri - port 2 // TODO: Maybe there should be a separate violation for 'extra file accessed under an output mount' (need to first disallow source files in writable mounts). 1 /// TODO:SQ: Fix for possible union type (IUnionType) 2 ISignature GetResolvedSignature(/*TODO: CallLikeExpression*/INode node); 1 // TODO: Could have a ReportFileAccess overload instead. 1 // TODO: As part of gradually turning on NtCreateFile detour reports, we currently only enforce deletes (some cmd builtins delete this way), 3 ignoreGetFinalPathNameByHandle: true, // TODO: Change this value when the default value for ignoreGetFinalPathNameByHandle changes. 1 [Trait("Category", "WindowsOSOnly")] // TODO: Update to check for immutable (?) 1 // TODO: Read everything else instead of doing it in many different places? 1 // TODO:SQ: Figure out how to determine equality! 1 // TODO: Should this ever be enabled? Default to on outside of CloudBuild for now. 1 // TODO: if the change impacts all pips then just list longest path instance 1 // GetCacheEntryAndRunPipFromCache(satisfiable); // TODO: Oops. Accidentally slower? 1 // TODO: perhaps overwrite retry policy? 1 // TODO: saqadri - Port 1 // TODO: Shouldn't drop the read buffer unless seeking to a new position. 1 /// (TODO: Also implement option to write through items to disk as they are written, and release the memory eagerly.) 1 // TODO: add jitter to rules, so that queries to Kusto are spread out over time instead of all at once 1 // TODO: saqadri - fix up! 1 internalPathTable: new PathTable(disableDebugTag: true), // TODO:409239: Fix debug tag allocation; don't disable here. 1 // TODO:365262 use a utility routine 1 // TODO:ST: TypeScript compiler supports Identifier, ElementAccessExpression and PropertyAccessExpression 1 // TODO: Check if it is better (and possible) to trat enums as strings. What happens if the implementation disagrees with the manifest? 1 // TODO: Verify that the HResult is 50002. Documentation shows that this should be the error code for throttling, 1 /// TODO: Remove when all content stores implement bulk methods (bug 1365340) 1 // TODO: consider passing a special error code for cancellation. 1 // TODO:ST: consider hiding implementation details. IDictionary is mutable and could be harmful to expose. 1 /// TODO: Unify cache config - current default taken from IOGate in DistributedReadOnlyContentSession. 1 // TODO: during workspace construction the workspace resolver factory is accessed directly, which is wrong from an architecture 1 // TODO: it would be better if MSBuild provided the property name 1 /// TODO: this is not documented by WDG yet. 1 // TODO: change this once Unsafe mode is removed / no longer a default mode 1 /// TODO: remove this restriction. 1 /// TODO: This is a temporary structure that should be removed when module configuration logic is removed from IResolver 1 /// TODO: Remove after the cloudbuild environment is correctly set 1 // TODO: In the deny case, we aren't ever returning PathValidity::PathComponentNotFound; so ERROR_PATH_NOT_FOUND is never returned in the Deny case. 1 // TODO:365262 - move the state reset in a utility 1 /// TODO: Check if there are other cases under which we should abandon as well. 1 // TODO: File bug to ensure we fail on errors. 1 // TODO: Write everything else instead of doing it in many different places? 1 // TODO:SQ: Find a better way to represent this! 1 // TODO: Unfortunately absolute_path.combine(".") doesn't result in absolute_path, but absolute_path\., which is treated differently from absolute_path 1 // TODO: add comment! export modifier is applied on the statement, not on the declaration list! 1 // TODO: Comments for symbol declaration for tooltip in web site? 1 // TODO:Typechecker already has an ability to give a value for enum value. use that logic instead of our own here. 1 // TODO: saqadri - port 1 // TODO: However, the object literal expression does as it is a node 1 // TODO: this class should be moved to utilities eventually, but right now we don't have an utilities project that references System.Memory 1 // TODO: Implement content validation/remediation 2 // TODO: I disabled the following assertion because 1 // TODO: Validate casting hyjinx below resolve to the same thing as '>>>' 1 // TODO:365262 - add better type inference that works with a variable-length regression array 1 /// TODO: consider adding better provenance information (even though these type of 1 // TODO: why is the first part of this check here? 1 #pragma warning disable ERP022 // TODO: This should really handle specific errors 13 // TODO: I've added cast to FunctionBody 1 // TODO: Verify cast! - can we guarantee that decl is an ISignatureDeclaration? 1 // TODO: The spec needs to be amended to reflect this grammar. 2 // TODO: test this function 1 // TODO: Fix me! 2 // TODO:SQ - Figure out type union for input param, if necessary 1 // TODO: Fix me. 1 // TODO: These are methods, so handle computed name case 1 // TODO: decide if we want to pin on the backing session as well. The issue here is as follows: on the use- 2 // TODO: In the future we may want to only allow spread operator inside arrays or function calls. 1 // TODO: we should use this evaluator (or, even better) stuff from the checker, for enums as well. 1 // TODO: Still something better could be worked out when the result fits in an ObjectLiteralSlim (like sorting the keys first) so we avoid going to an intermediate dictionary 1 // TODO: Perhaps probabilistically enumerate based on hash of path and some counter 1 // TODO: This failure needs to have keywords added so that it can be tracked as "Should be user facing" 2 // TODO: Could scrub FILE_ID_BOTH_DIR_INFO too (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364226(v=vs.85).aspx) 1 // TODO: following expressions uses bitwise operators on non-flag enum!! 1 // TODO: THe above issue is tracked by task 872930. 1 // TODO: Support batched TryKeepUntilReferenceChunkAsync in Artifact. (bug 1428612) 1 // new PropertyName Name { get; set; } // TODO: HD should be uncommented but then the current implementation breaks 1 // TODO: Simplify 1 // TODO: Failure cases, logging 2 // TODO: Include encoding in the pip data. Task 869176 1 // TODO: Should we call Dispose? 1 // TODO: 1 private bool? TryEvaluate(ModuleDefinition module, QualifierId qualifierId) // TODO: Async? 2 // TODO: Ideally this would be exposed as config constructor parameters to BuildXL to not require manipulating the json config. 1 // TODO: add readonly once switched to a recent compiler with readonly structs. 1 // TODO:: if count is large may need to add a DIV 1 // TODO: considered "words" from the type-checker perspective. 1 // TODO: this rule is too noisy and inaccurate, we should make it work again 1 // TODO: Different targets 1 // TODO: consider splitting the parsing options into UserConfigurableParsingOptions and ParsingOptions 1 // TODO: Consider whether we should use the real file system existence which could be Nonexistent OR ExistsAsDirectory 1 var pattern = declaration.Parent.Cast(); // TODO: Verify cast 1 // TODO: per-stamp configuration (some stamps are more important than others, query frequency should reflect that) 1 // TODO: Failing locally during conversion 2 // TODO: why Option.Create is needed in those cases! Implicit conversion should work just fine 1 ignoreReparsePoints: true, // TODO: Change this value when the default value for ignoreReparsePoints changes. 1 // TODO: This manual configuration is temporary. Remove after the cloud builders have the correct configuration 2 // TODO: why an export binding needs a thunk by itself? It is at most a reference 1 // TODO: Maybe WeakUsn should not be allowed here; but there are existing call sites (perhaps just TryOpenAndTrackPathInternal) which are 1 // TODO: Use nestedLoggingContext for resolver errors 1 // TODO: This should be enabled in a later release - currently breaks rename. 1 // TODO:SQ: This can be replaced with field initializers on the class 1 // TODO: This deserves perf instrumentation. If this simple implementation becomes a problem, 1 // TODO: consider removing that implicit conversion altogether. 1 if (contextualMapper == s_identityMapper && // TODO: Verify correctness 1 // TODO: Throw an exception for else case. Right now silently ignore the argument. 1 // TODO:#1208464 - this can be removed once BuildXL targets .net or newer 4.7 where TLS 1.2 is enabled by default 1 // TODO: binary search 1 return new ContentHash(HashType.Dedup64K, blobId.Bytes); // TODO: Chunk size optimization 1 // TODO:replace with the same logic as Detoured_FindNextFileW 1 IgnorePreloadedDlls = true; // TODO: Change this when customers onboard the feature. 1 // TODO: compute default size based on a number of specs and/or nodes in all specs. 1 // TODO:add CreateFileMapping* 1 stringBuilder.Append(LoggerComponentInfo ?? ""); // TODO: remove the null check if the constructor checks for not-null 1 // TODO: what type of generic needs to be used in parseOptionalToken??? 1 // TODO: concurrency? 1 TODO: the parser is modified to preserve comments (only when skip trivia is off) and line breaks only for *some* key cases: 1 // TODO: Fix this to work with size > int.Max (bug 1365340) 2 // TODO: This needs to go!!!!! 1 /// TODO: This is an experimental data structure to get some performance. 2 // TODO: Add Option for common config options for cache as literal object 1 // TODO: This was ported from the type-script repositiory. I'm not sure I completely understand this. 1 // TODO: Consider if it is possible to use QualifierUtilities.CoerceQualifierValue instead. 1 // TODO: No MSBuild-specific logic 1 // TODO:SQ: Type should be IParameterDeclaration, not IDeclaration 1 // TODO: saqadri - port if necessary 1 // TODO: revise! this case means 'import * as x from ...'. With lowercase x! This is preserving old behavior 1 // TODO:SQ: Need to call bind(n) on each child in the node, but there is no 1 // TODO: Split this out into separate implementations for WriteThrough vs. WriteBehind (bug 1365340) 1 // TODO: split results and call PlaceFile on successfully copied files (bug 1365340) 1 // TODO:365262 array index check 1 // TODO: A package has actually two identifiers: packageId and moduleId. PackageId is a stringId that gets created 1 // TODO: Implement stricter filters so that we only retry failures that are worth retrying. 1 // TODO: because it still does not contain enough context. 1 // TODO: this is very strange! Why error value is not propagated? 1 /// TODO: Add exclusive time. This needs a slightly larger infrastructure change or a more complicated tracking mechanism here 1 // TODO: Find the compiled item (e.g., ) and set its 'DependentUpon' metadata. 2 var name = node.GetText(); // TODO: saqadri - verify correctness (const name = (node).text; 1 // TODO: Maybe all counter updates should occur on distributed build orchestrator. 1 var computeExtraneousSidebandFiles = true; // TODO: no need to do it if we got graph cache hit 1 /// TODO: eventually we should unify this and use the same mechanism for all platforms, if possible. 1 // TODO: make a way to reorder it! 1 // TODO: Make this an extension method (bug 1365340) 1 verifyConnectionCancellationToken: CancellationToken.None); // TODO: Pipe down cancellation support (bug 1365340) 1 // TODO: we can consider conflating these two scrubbing passes (first one is optional) into one call to DirectoryScrubber to 1 // TODO: considering configuring this policy for all shared opaques, and not only when AllowedUndeclaredSourceReads is set. The case of a write on an undeclared 1 /// TODO: This is code duplicated from the configuration processor. Consider refactoring 1 // by this pip containing shared opaques will also be removed. TODO: enabling lazy shared opaques implies start using sideband information 1 /*/* TODO:410334 - Current builds have lots of source files being incorrectly registered under output mounts. 1 /// TODO: We still need to solve Debugging the pathTable/StringTable properly. This is on the backlog, so we have a temp workaround here. 1 // TODO: Make this a more specific error and decouple it from the exclusion logic. 1 // TODO: unify this implementation with TryCast behavior. 1 // TODO: Not sure why GetSymbolAtLocation isn't enough 1 // TODO: we don't really need to evaluate all the specs in the module, we could evaluate a 1 => false; // TODO: Task #1272136 (FileContentTable) 1 // TODO: int to falsy 1 /// TODO: Investigate have items which are associated with nodes that do not have next pointer to save memory 1 // TODO: Delete 1 /// TODO: improve error reporting by adding the location of the qualifier type declaration of the target module 1 // TODO: Identifiers (SyntaxKind.Identifier) are really just 1 // TODO [pgunasekara]: Add a cancellation token here 3 // TODO:[340919]: Unused / disabled for perf reasons. Re-enable at some point. 1 // TODO: This can be made more efficient by talking with the qualifier table directly 1 // TODO: pull these stats below into the invocation details since they aren't specific to product build 1 // TODO: Its probably possible to do this by getting the max machine id in the locations set rather than enumerating all of them (bug 1365340) 1 // TODO: retry policy for writing to file? 1 /// TODO: blocking exported lambdas might make sense for project files, but consider that other values 1 // TODO:SQ: DeclarationName type for this function param seems unnecessary 1 // TODO: Don't need them for now! 1 // TODO: The cache should be able to do this itself, preferably sharing the same code. 1 /// TODO: The nuget resolver is generating specs on disk that are later parsed. Consider avoiding the roundtrip and generating ISourceFile directly 1 // TODO: Full process tree observation is currently only supported on Linux based systems. macOS support will be added later. 1 // TODO: Could scrub FILE_ID_BOTH_DIR_INFO too (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364226(v=vs.85).aspx) 1 /// TODO: Make EnvironmentVariables and paths machine independent 1 // TODO: Also handle timeout 1 // TODO: reference any additional headers you need in STDAFX.H 1 // TODO:365262 - move this in a C++ utility routine 1 // TODO: Instead of looking at all disk usages, just look at the ones which are associated with the build files (both inputs and outputs). 1 // TODO: Maybe a serialization format header. (bug 1365340) 1 // TODO:SQ: This will not work! IParameterDeclaration.Equals is not implemented 1 private readonly ThreadLocal> m_resolutionTargets = 1 // TODO: For general use, one may want to add proper handling for getting a symbol from a name. 1 // TODO:365262 - use here DDP_CCT_MinReached always (technically this is a MinReached) plus mix DDP_CCT_MinReached and DDP_CCT_All_Zero as flags 1 // TODO:22476: We allow inputs to not exist. Is that the right thing to do? 1 // TODO: TaggedTemplateExpressions may eventually support type arguments. 1 //// TODO: Currently fragment is string literal. This somehow defeats the purpose of paths. 1 // TODO: Do we need this fingerprint given that the path set hash is provided by this interface in the first place 1 // TODO: Reconcile with 'emitMemberFunctions'. 1 #pragma warning disable ERP022 // TODO: This should catch specific exceptions 1 /// TODO: allow more flexible building. 1 // TODO: Remove this check in else-if when SyntaxKind.Construct is moved and ambient context is handled 2 // TODO: With UseHardLinks, a cache put may involve creating a hardlink *from* the cache if we already have the hash and then this is wasteful. In general this flush could be better positioned w.r.t. cache interaction 1 // TODO: fire-and-forget exceptions are now being reported on the dashboards. We should see if this can be recycled. 1 // TODO: Report error. 1 // TODO: serialize/deserialize container configuration. 1 // TODO: consider extending the interface between engine and front end so that the result of the 'ParseConfigFiles' 1 #pragma warning disable ERP022 // TODO: This should really catcht he proper exceptions 1 monitorZwCreateOpenQueryFile: false, // TODO: Change this value when the default value for monitorZwCreateOpenQueryFile changes. 1 // TODO: Make this multi-threaded. For now since we are developing keeping simple loop to maintain easy debugging. 1 // TODO: This option is DScript only. It isn't shown in the help text because we have the goal of 1 // TODO: Consider calling this from TryHashDependencies. That would allow us to remove logic which requires 1 // TODO: This loop takes 70% of the deserialization time; make faster. 1 // TODO:Bug 75124 - should validate these paths 1 // TODO: find out what this means! 1 // TODO: Maybe a better description. Add ninja description or change command for input/outputs 1 /// TODO: Declaration.ModifierFlags is used to flag bindings as exports and it is shared with declarations. Consider refactor this into a binding-specific class and incorporate to ExportKind 1 // TODO: Use real versioning scheme for updates to resolve possible race conditions and 1 // TODO: Telemetry for falling back to read-only 1 // TODO: add a flag to filter out common known changes to minimize noise 1 // TODO: Check that target label is valid 2 // TODO: Allow specifying fingerprinting version on the command line 1 // TODO: As anything not in the reserved list can be used for application defined errors 1 // TODO: Check this precondition because now we are converting value from another assembly. 2 // TODO: uncomment after workaround fix 1 // TODO: tracking work item - #961302 1 // TODO: The VFS, LocalDiskContentStore, and DirectoryMembershipFingerprinter may need to be better reconciled. 1 * TODO: different clients can have different configurations, hence this should be kept per client. 1 // TODO: This is temporary and should be removed!!! 1 // TODO:409239: This is broken. On deserialization, allocate a tag and then remap deserialized paths. 1 // TODO: The GUID is computed based on the project, which means that uniqueness is guaranteed 1 //// why/* TODO:is the first part of this check here? 1 // TODO [pgunasekara]: Change this to a Warning. Currently this is only Info level until CB changes are fully rolled out to avoid generating warnings unnecessarily. 1 /// TODO: Remove this when https://gitlab.kitware.com/cmake/cmake/issues/19162 has reached mainstream versions 1 // TODO: Debug.Assert? 1 // TODO: not needed? Contract.Requires((int) state <= PipStateRange.MaxValue && (int) state >= PipStateRange.MinValue); 1 // TODO: the ROOT_PID env var is a temporary solution for breakway processes 1 // TODO: It looks like this is the wrong class for WorkerId, because the serialized object has always WorkerId == 0. 1 /// TODO: eventually we should have just one parser. Once will be confident enough with this one, we can make the base class abstract. 1 /// TODO: Add command line args with HostParameters and ServiceLifetime args so that 2 // TODO: saqadri - Port fully 1 // TODO: Debugging for a one-off crash. 1 // TODO: Check equivalence 1 // TODO: This can be optimized so a uint can represent both the partial seal id and the isSharedOpaque field 1 return GetTypeForBindingElement(declaration.Cast()); // TODO: Verify cast 1 // TODO: this file is becoming too big, consider splitting into multiple files based on logical grouping. 1 // TODO: if module is empty for some reason (for instance, because ast translation went wrong), 1 => null; // TODO: Task #1272136 (FileContentTable) 3 /// TODO: Currently returns a platform specific concrete instance of 1 // TODO: But some of our runners (e.g, resgen) do it. 1 // TODO: path, package, and parent are not projectable from a module literal, but very useful for debugging. 1 // TODO: Maybe have a separate violation type for writing to source files. 1 // TODO: Adjust defaults (bug 1365340) 1 // TODO: Better way ? (bug 1365340) 1 /// TODO: For perf, we may want to change it with sorted map. 3 // TODO: Definition = null, 1 // TODO: Make a better design for many-to-many observable-observer relations. 1 // TODO: This is a very silly conversion. Should re-implement the needed comparer things in a new IBinaryComparer 1 var deletionResults = sharedOpaqueOutputsToDelete // TODO: possibly parallelize file deletion 1 // TODO: We should establish good post-conditions for CreateDetouredProcess. As a temporary measure, it would be nice 1 // TODO - FailureRecovery relies on the configuration object and path table. It really shouldn't since these mutate over 1 // TODO: Are we sure these are all safe? 1 // TODO: does. You cannot simply back up one node (go to its parent if you will) 1 // TODO:#1208464- this can be removed once DropDaemon targets .net 4.7 or newer where TLS 1.2 is enabled by default 1 /// TODO: Other methods like TryDiscoverAsync should be able to handle absence-tracking, and understand the special absent-file hash 1 // TODO: do we really need to do that?!?!? 1 // TODO: in typescript implementation this type is used only by the language service. This is a good candidate for being removed. 1 // TODO: is a short hand property assignment. Neither node has enough 1 // TODO: this is not great as some structs (e.g., DirectoryMembershipHashedEventData) 1 // TODO: Must handle partial flushes for writable AsyncFileStreams to work. 1 // TODO: Consider compiling Item2's Diagnostics into the final result's Diagnostics instead of ErrorMessage (bug 1365340) 1 // TODO: Should respect version disposition rather than disingenuously returning the latest. 1 /// TODO: FixMe. This property makes little sense in the presence of qualifiers. 1 // TODO: In theory, ObservedInputProcessor should not treat 1 // TODO: print nested messages as well!! 1 // TODO: Extend IAsyncEnumerable up through EnumerateStrongFingerprints 1 await incorporateBlock.Completion.ConfigureAwait(false); // TODO: Gracefully handle exceptions so that the rest of shutdown can happen (bug 1365340) 1 // TODO: Verify order of logical operations matches intent 1 // TODO: Irrelevant for our purposes (so far) 1 // TODO: Try to materialize dependencies. This is not needed in the normal case because 1 /// TODO: Eventually, this may allow cancellation of tracking. 1 // TODO: Should log (source, destination, size) and an end marker. 1 // TODO: consider using an env variable (if defined) as a fall-back. 1 // TODO: Chunk size optimization - consider re-enabling this *new* proposed assert. 1 Contract.Assert(false, $"TODO: add message"); 1 // TODO: consider extracting template method! 1 // TODO: Fix all callers, in the api this is limited to Directory. 2 // TODO: consider special hint/message if the current node is a template expression with interpolated expressions. 2 /// TODO: replace with a property once AbsolutePath is properly introduced in ISourceFile 1 // TODO: We use the 'Supersede' update mode here - this is appropriate for callers that have one defined owner of each path (such as pip execution), 1 // TODO: Not handling moves from PC 1 // TODO: Need to discuss what are the other extensions that can be allowed 1 // TODO - There should be some limit on when a build is bucketed with this since it may still be running 1 // TODO: parallelize 1 // TODO:for the owner: the following const is not used. Please remove. 1 /// TODO: Currently there is no significant performance gain, but further improvement can be carried out in the future. 2 #pragma warning disable ERP022 // TODO: This should really catch the right exceptions 2 // TODO: interface MyType { property: boolean } 1 // TODO:365262 - move this to a utility routine (note: also used in the constructor) 1 /// TODO: policy around untracked files needs to change 1 IgnoreDynamicWritesOnAbsentProbes = DynamicWriteOnAbsentProbePolicy.IgnoreDirectoryProbes; // TODO: eventually change this to IgnoreNothing 1 // TODO:ST: Array has member length, but a["length"] will return undefined! 1 // TODO: Use FileSTream for writing in the future but we don't have that right now. 1 // TODO: This method is a little bit "spaghetti" like, consider breaking it up. 1 // TODO: signature.ResolvedReturnType.Flags.HasFlag(TypeFlags.Intrinsic)? 1 // TODO: we actually need the build parameters *used* by the graph construction process, but for now this is a compromise to keep 1 // TODO: Verify equivalence - return hasAccessibleDeclarations; 1 // TODO: This is ugly - simply using if-else 1 // TODO: add logging 1 // TODO: Or we can split the files into graph-agnostic and graph-specific ones. 1 // TODO: First-class integration support is needed. 1 // TODO: || reportType == ReportType.AugmentedFileAccess; 1 // TODO: need to cast to < Identifier | QualifiedName > 1 // TODO: Is ADR (T1) blitt-able? 1 Contract.Requires(start >= 0); // TODO: shouldn't be necessary given Range.IsValid above, but the contract checker insists 1 // TODO: we want to always have a component info for debugging purposes. 1 // TODO:58494: We shouldn't need to open a new handle here. In fact, that is a race, and why there isn't a RecordContentHashAsync taking a path. 1 // TODO: Verify equivalence - return forEachValue(symbols, symbolFromSymbolTable => ...); 1 // TODO: Switch to GetOrSetAtomic if race condition will keep happening. 1 // TODO: We may want to split these into small files so saving can be parallelized. 1 // TODO: After fixing the qualifier in the DS, I will start using the qualifier id instead of friendly qualifier name 2 // TODO: why Code == ResultCode.Unknown is consider as success? 1 // TODO: Stop using the configurationModel's SingleInstanceTimeout (bug 1365340) 1 // TODO: Bug #995938: Temporary hack to handle pip graph construction verifcation oversight 1 // TODO:365262 Refactor to eliminate the confusing "offset by 1" difference between the two arrays 1 // TODO: TS implementation re-defines getter here. Unnecessary? var getter = GetDeclarationOfKind(symbol, SyntaxKind.GetAccessor).Cast(); 1 // TODO: Actual filtering. For now [first development only] we schedule all pips because we are dealing with a single spec 'all' 1 private readonly Dictionary m_pathCache; // TODO: use AbsolutePath instead of string 1 // TODO: Provide an option to lazily start to upload to Remote. 1 // TODO: We need to introduce the ability to map the starting 1 // TODO: consider adding @@ as a first-class citizen. 1 /// TODO: Introduce a separate resource class for machine resources such as predicted memory or I/O usage. 1 // TODO: It is incomplete 1 // TODO: If there are multiple CSC processes in the same spec file (which can 1 // TODO: Remove this when we ascertain that our customers are not 1 // TODO:ST: use actual pool! 1 => _local.IncorporateStrongFingerprintsAsync(context, strongFingerprints, cts, urgencyHint); // TODO: we might want to also bump TTL on the remote. 1 // TODO: Get the content hash list in a more efficient manner which does not require us to talk to BuildCache. 1 // TODO:not used. Deprecate 1 /// TODO: Zig-zag: We should maybe only track changes to files which are *final*. 1 TODO: Calling exit() within the system extension / daemon causes it to be killed and restarted, in general we have to 1 // TODO: next statment will fail even for valid names. 1 // TODO:454491: We could also set FileSkipSetEventOnHandle here, such that the file's internal event is not cleared / signaled by the IO manager. 1 /// This is a V1 specific field. TODO: remove when DScript V2 becomes the norm 1 // TODO: the following check is an optimization to avoid redundant work. 1 // TODO: Don't use UntrackedFile for this... 1 // TODO: stamp configuration knowledge. Stamp configuration affects what our thresholds should be. We should reflect that here. 1 // TODO: this behavior should be replaced with new enum syntax (non-const syntax declaration with const behavior) 1 // TODO:implement detours logic 9 // TODO: Add an assertion here, Assert(isSearchPath). 1 // TODO: Applications like good old notepad work just fine. 1 // TODO: Upload the content efficiently (in parallel and with caching of success) (bug 1365340) 1 // TODO: Log error 1 // TODO: switch to ValueTasks 1 // TODO: see services.ts in DScript.typeScript repo, and look at nameTable field extension on SourceFile interface 1 // TODO: check types to avoid redundant ToArray call. 1 // TODO: Verify equivalence - const name = e.PropertyName || e.Name; 1 // TODO: Keep track of dependencies also, not just failed pips to allow better comparison of changes 1 int exclusive = (sortedList.Length * p) / 100; // TODO: this should interpolate... 1 /// TODO: This should be a temporary hack until we fix all places broken by the NtCreateFile monitoring 1 // TODO: Verify equivalence - return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics)); 1 // TODO: SO... Since the file is still in use at this point, if the user has 1 // TODO: This is currently untested. Verify correctness! 2 // TODO: there is no reason for this hash computation to be done in native StringOperations.cpp 1 // TODO: Task 138817: Refactor passing and parsing of report data from native to managed code 1 // TODO: move it to the library? 2 TODO:365262 - simplify the code by allocating a larger buffer and copying the data to ensure a continuous operating buffer 1 /// TODO: add more detailed error messages when paths don't look as expected and propagate message upstream. 1 // TODO: should print errors as well. 1 // TODO: Consider a better implementation that doesn't have a global lock 1 // TODO:saqadri - return Unit type 1 // TODO: Checkpoints started later should take precedence. Might require a compare 1 // TODO: We currently cannot report or model invalidation of enumeration 'anti-dependencies', but can report what files are actually found. 1 // TODO: this is for backward compat only; remove when not needed any longer 1 // TODO ST: I think it should be easier to track successful state, not an error state! 1 // TODO: In the future we need to consider input dependencies to make the isolation include them, not only outputs 1 // TODO: factor out common logic into utility functions, we are duplicating 2 /// TODO: We should remove this member and force everyone to go through the semantic model 1 (IThisTypePredicate)memberType.Cast().Predicate, // TODO: Verify! - How do we know Predicate is of type ThisTypePredicate? 1 sourceReadContext.OpenedDirectory = false; // TODO: Perhaps CreateHardLink fails with a nice error code in this case. 1 // TODO: Ideally we would create the Project and ProjInstance, 1 /// TODO: Include module id as part of the key. 1 // TODO: We assume that everything up until the first sentinel is local. This is fine for a simple 'vertical' aggregator 1 /// TODO: remove when DScript V2 becomes the norm 1 // TODO: Investigate why we are passing node.name instead of node.parameters[0].name 1 // TODO: Fix casts! 1 /// TODO: 1 ignoreFullReparsePointResolving: true, // TODO: Change this value when the default value for ignoreFullReparsePointResolving changes. 1 IReadOnlyList ResolvedBaseTypes { get; set; } 1 // TODO: the PathSet and weakFingerprint shouldn't really need to be members of the StrongFingerprint. 1 /// TODO: Should clarify that this definition lines up with BuildCache's. Should maybe separate network vs. local transfer. 1 // TODO: Observer that these numbers will monotonically increase! Consider resetting and type check from scratch when they get too big 1 /// TODO: When DScript V2 becomes the norm, internal references will be gone. Consider removing that functionality from this class at that point. 1 // TODO:58494: We shouldn't need to open a handle here and then drop it immediately. The cache needs to know about the file content table 1 // TODO: Remove check when all clients are updated with unified Dedup flag 1 // TODO: Cache enumeration listings 1 // TODO: Move validation into the namespace layer (Work item: 934651). 1 (Environment.GetEnvironmentVariable("BUILDXL_TEST_FORCE_MANAGED_CHUNKER") != "1") && // TODO: Get rid of COM Chunker. 1 // TODO: Verify equivalence - const propertyName = (propertyWithInvalidInitializer).Name; 1 // TODO: fix this Workaround when SemistableHash becomes unique 1 // TODO: Custom DetoursEventListener? 2 // TODO: 1 // TODO: Get rid of the global state once the prototype is more mature 1 // TODO: "context". However, the preceeding "node" or token typically 1 // TODO: Loading and Saving involves a bunch of unnecessary copies. 1 // TODO: move this to EvaluationResult itself. 1 // TODO: But in the case of \\?\C:\foo\..\bar or \\?\C:\foo\\\bar we need to consider preserving the semantics that GetFullPathNameW canonicalization does not apply. 1 // TODO: Deciding not to traverse symlink chain based on reparse point deletion is probably not correct 1 // TODO: Better way ? (bug 1365340) 1 // TODO: outputs should be optional/required depending on the Ninja graph semantics instead of always optional 1 // TODO: Once we have a platform where this actually happens, implement it! 1 /// TODO: a future optimization is to update serialization to be thread-safe and not block on it 1 // TODO: Deal with environment 1 // TODO: We need a different side channel for prefetching etc. other than strong fingerprint subclasses. 1 // TODO: Verify equivalence - const name = declaration.PropertyName || declaration.Name; 1 // TODO: Support multiple SxS versions, so this dependency would be the direct dependency. 1 // TODO: Allocations ahoy! 1 // TODO: This means we can't represent the fact that some but not all outputs of a node are filter-passing. 1 // TODO: Check perf. a) if this is a good buffer size, b) if the buffers should be pooled (now they are just allocated and thrown away) 1 // TODO: Whereas the typescript version does. 1 // TODO: Can we stop it running? https://stackoverflow.microsoft.com/questions/74425/how-to-disable-vctip-exe-in-vc14 2 /// TODO: Consider sharing this cache accross instances. 1 // TODO: Change the package semantics to implicit when we expose a way to evaluate a single value 1 fileSystem ?? new PassThroughFileSystem(pathTable), // TODO: Consider moving this entire function into test helpers and then use the test file system. 1 // TODO: we could try something out if memory turns out to be a problem. 1 // TODO: Implement proper protocol for XPC connection handling 1 // TODO [LANCEC]: Consider returning prior deployment until all files are uploaded. 1 /// TODO: Not customer facing at this time. Intentionally not including this in help text 1 // TODO:SQ: Return Unit type 1 // TODO: We should have our own to report out too... 1 /// TODO: unify with ModuleId 1 // TODO: current design is not good. 1 // TODO: merge two 'GetFilesToInclude' methods into one. 1 // TODO [pgunasekara]: Add a cancellation token here 2 // TODO: rewrite in C# way 1 // TODO: saqadri - log exception, but for now just swallow 1 // TODO: think about generialized way of dealing with union types! 1 // TODO: not needed? Contract.Requires((int) from <= PipStateRange.MaxValue && (int) from >= PipStateRange.MinValue); 1 // TODO: consider moving to excludeArgument = Enumerable.Repeat(new bool?(), args.Count).ToList(); 1 // TODO: This logs an error if it fails. We are assuming some later thing will ensure that, if failed, 1 => new List>(0); // TODO: Task #1272136 (FileContentTable) 1 // TODO: Irrelevant for our purposes (so far). 1 // TODO: Handle ToolCache again 1 /// TODO: This may go away entirely when we support swapping in prior versions of an artifact (with optimistic locks) as in 1 /// TODO: Feel free to move it to the appropriate place. 1 // TODO: We could do something smarter in the future and just download/generate what is needed 1 new LocationData(pathToSpec, 0, 0), // TODO: This is the location of the value (that is scheduling pips through this helper) in its corresponding spec. 1 // TODO:ST: consider changing the following logic based on explicit domain concepts (like by adding explicit visibility enum and use it) 1 /// TODO: split out into more specific failure types 1 // TODO: The returned ID might not be linked into the containers list properly yet. 2 // TODO: In the future, we may want to restrict it based on pip's untracked scopes/paths. 1 // Aliased to the same implementation. TODO: 'BuildXL' older naming intended to be deprecated and removed. 1 // TODO: Actually compute NOTE: This may be the variable declaration in the case of a property assignment 1 // TODO: Should be able to log provenance of the sealed directory here (we don't even know which directory artifact corresponds). 1 // TODO: need to check that file2file map is available and skip filtering otherwise. 1 // TODO: add this to the report 1 /// TODO: change the comment. It is stale. (bug 1365340) 1 /// TODO: Deprecate. This is superseded by via . 1 // TODO: Ideally we'd automatically turn on distributionConfiguration.ValidateDistribution whenever 1 /// TODO: consider failing if this happens? 1 // TODO: We do not restrict the environment variables for now. 1 /// TODO: Single-phase lookup should be considered deprecated. Therefore, invest in moving to two-phase lookup rather than improving the bad 'replace' semantics in this shim. 1 // TODO: journal tracking inside a cloned gvfs repo is failing in CloudTest with 1 // An ArrayLiteral happens to be an ObjectLiteral as well! (with zero members). TODO: revisit this! 1 /// TODO: Since we will run OACR pips without sharing, this data may no longer be needed. 1 // TODO: Setting machine state to DeadUnavailable is too aggressive as the machine may not shutdown immediately. 1 /// TODO: This is only here as a way for the string to get to the log file. EventSource encodes enums as int 2 //// TODO: We need to find a syntactic representation of relative path that differs from string. 1 /// - The set of values to be built (TODO: This is relevant for the original value filtering, which is at evaluation time; all other filters apply after graph reload). 1 case PipResultStatus.NotMaterialized: // TODO: This is misleading; should account for eventual materialization. 1 // TODO: Will we need this? 1 // TODO: Indexable structure? 1 // TODO: check that reservation was never called with -1 sizes. 1 // TODO: verify correctness 1 var fullSymbol = FullSymbol.Create(m_context.SymbolTable, $"ninja.{PipConstructionUtilities.SanitizeStringForSymbol(moduleDefinition.Descriptor.Name)}"); // TODO: Figure this out, complete 1 // TODO: run tests against event hub automatically 1 /// TODO: Include transitive dependencies, because right now is just fintering on direct failed pips 1 // TODO: add counter to measure the time spent getting dir content 1 // TODO: We need to clean up the use of these different location classes. 1 // TODO: Non Windows OS doesn't support admin-required process external execution mode. 1 // TODO: Get ESClient mappings implemented to do proper cleanup, also an invalidated connection error is the default when the client exits. 1 // TODO:365262 - cleanup alg (visible exit here for code clarity) 1 // TODO: Fix me. 1 // TODO: data drive refactoring. We need to figure out 1 // TODO: Fix this type 1 // TODO: This cast will not work! Need to update interfaces to derive from IVariableLikeDeclaration 1 // TODO: By JSON-RPC, the error code in reality should be a int 1 // TODO: to a temporary file and open that one. 1 /// TODO: This should be removed when lazy write file materialization works appropriately with copy pips AND incremental scheduling. 1 // TODO: if high-precision file timestamp is supported, this function should simply call TryGetVersionedFileIdentityByHandle. 1 // TODO: This is a bad thing to do, but is what the original AsyncStreamReader was doing. 1 // TODO: We should filter the return code for a miss, but at this time, we don't get a consistent return back from all known caches. 1 // TODO: error handling needs to be refined here. Many different causes for a enum to be invalid 1 // TODO: point from the beginning of completion. 1 // TODO: when can there be more than one entry in this list? 1 // TODO: Pass location store option (seems to only be used to prevent updating TTL when replicating for proactive replication) (bug 1365340) 1 // TODO: How to wait for events? 2 // TODO: change to registering the export clause and walk up the parent when that becomes available 1 EvaluationFilter.Empty, // TODO: consider passing a filter that scopes down the build to the root folder 1 // TODO: Verify correctness! 1 // TODO:365262 - clean up the algorithm 1 // TODO : Use an object pool for all these lists that are now flying around? 1 // TODO: Should we maintain the case of the source file? 1 // TODO:365262 - assert that we reached the end of the buffer 1 /// TODO: Anti-dependencies: This thing should learn how to probe for files gracefully (instead of caller probing), 1 // TODO: Some microbenchmarking experiments. 1 // TODO: revisit the structures, since the projects are known upfront we might be able to use lock-free structures 1 // TODO:365262 - cleanup algorithm 1 /// TODO: Would be nice to instead have a safe variant of EqualityComparer{T}.Default instead of these constraints. Hard to use enums, etc. 2 .Select(path => FileUtilities.TryDeleteFile(path)) // TODO: what about deleting directories? 1 // TODO: (1) this check should be part of validation, and 1 // TODO: currently we have artifical EnumValue type that makes implementation less clear and consistent. 1 /// TODO: this will be eventually split into symbol binding and type checking, but for now Checker is a monolithic entity 1 // TODO:ST: add different set of function that will distinguish optional from required arguments! 1 // TODO: instead of failing, implement a critical section 1 // TODO: this was just too noisy 1 // TODO: The code path that returns null looks dubious. Could they ever be reached? Should we write a contract here instead of silently concluding weak fingerprint miss? 1 /// TODO: extend this to support skipping IDs without having to call for every non-related ID. 1 // TODO: Verify equivalence - const { exportsWithDuplicate } = lookupTable[id]; 1 // TODO: Decide whether the elements should be listed or written next to each other based on the text length instead of the number of elements. 1 // TODO: This failure needs to have keywords added so that it can be tracked as "Should be user facing" 1 // TODO: here we need to add checker diagnostics as well. 1 // TODO: potentially we could have a glob call here, and what we can do this: 1 // TODO: this could be a separate function, 1 verifyConnectionCancellationToken: CancellationToken.None); // TODO: Pipe down cancellation support (bug 1365340) 2 // TODO: Expecting an error already logged; should do this with types? 1 // TODO: Instead of proceeding in coarse-grained waves, which leaves some potential parallelism on the table, 1 sourceReadContext.OpenedDirectory = false; // TODO: Perhaps CopyFile fails with a nice error code in this case. 1 /// This function is used only by the debugger. TODO: reconsider the design to avoid exposing this function. 1 // TODO: Investigate if this check is always reliable, and in that case, remove the configuration flag check 1 // TODO: the overall uniquness/aliasing thing should be improved. 1 // TODO: We can improve performance significantly by parallelizing the compression. 1 // TODO: Consider adding a more specific exception for the no defaults case 1 // TODO: input was IDeclaration, but IImportDeclaration is not an IDeclaration 1 // TODO: We could not send the hashes; so it is hard to determine what files and directories are added to AvailableHashes. 1 // TODO: This doesn't indicate what is local / how much was transfered. From the similar BuildCache adapter: 1 // TODO: Since we can atomically know the set of previous flags, it would be much nicer if we avoided 2 // TODO: Make this a more specific error and decouple it from the exclusion logic. 1 /// TODO: This is taken from https://stackoverflow.com/questions/1546419/convert-file-path-to-a-file-uri 1 // TODO: Async? 1 // TODO : Do this read in parallel with the other file 1 // TODO: Validate configuration before construction (bug 1365340) 1 // TODO: We accomplish this for now by treating the null fingerprint specially; but this is kind of broken since that might mean "directory exists but empty", which can genuinely occur when looking at the real FS. 1 // TODO: Verify equivalence with typescript implementation 1 /// - The new process does not inherit any handles (TODO: If needed, one could allow explicit handle inheritance here). 1 // TODO: this should be configurable via FAM 1 // TODO: Currently the logic skips empty subdirectories. The logic needs to preserve the structure of opaque directories. 1 // (lubol): TODO: Add handling of the translate paths strings. Add code here to address VSO Task# 989041. 1 /// TODO: add removed dependencies 1 // TODO: It will fail to open since word-pad tries to open the file exclusively. 1 (byte)NodeAlgorithmId.Node64K); // TODO: We need to fix this. 1 // TODO: Can we solve this nicer? Maybe pass a function pointer to SendAccessReport only? 1 // TODO:for an owner: why the type is serializable? We're not using BinaryFormatter here. 2 // TODO: consider removing it. 1 // TODO: Merging doesn't work for vcxproj or any proj with multiple qualifiers, e.g., there are duplicate entries in . 2 // TODO: This is a copy from PipGraph.Builder. Refactor it! 1 // TODO: Move the configuration to a lint rule 1 (statement.Kind == TypeScript.Net.Types.SyntaxKind.EnumDeclaration) || // and Enums are kept regardless visibility so we don't need to analyze type-related declarations. TODO: this can be optimized 1 // TODO: saqadri - port 4 VerifySourceFilesOnWorkers = false; // TODO: For testing purposes, this is going to be disabled by default. Update in the future to be enabled by default 1 // TODO: This should be removed, or should become a WeakContentFingerprint 1 // TODO: Implicit directory enumeration turns out to be bad for spinning disk. 2 /// TODO: this restriction (or design in general) should be changed to avoid such a complicated and fragile restrictions. 1 // TODO: Remove this when WDG can grog this feature with no flag. 1 // TODO: The constructor of DirtyNodeTracker looks unnatural, please fix. 1 // TODO: In the future we may want users to specify the packages explicitly, or via explicit glob. 1 // TODO: Verify equivalence!! 1 // TODO: consider adding const/non-const flags to VarStatement. 1 // TODO: consider adding cashing here. 1 /// TODO: Strong vs. weak identities are distinguished via a . In the future, there may be a new kind for timestamp-based identity; 1 // TODO:365262 potential perf improvement 2 // TODO: Log telemetry when this occurs 1 // TODO: Note that we can't simply forward to FindFirstFileW here after a unicode conversion. 2 // TODO: file a work item to remove the flag! 1 // TODO: don't stat all the time 1 // TODO: better provenance for configuration settings. 1 case HashType.DedupNode: // TODO: Chunk size optimization - remove this one entirely. 1 // TODO: Thus, we can avoid implicit directory enumerations on collecting packages. 1 // TODO: if the spec we are parsing belongs to the prelude, we override the automatic export namespace configuration for that spec to false. This is a temporary hack! 1 // TODO: when resolving recursively, we could populate the direct targets as well 1 // TODO: Would be nice to indicate the related consumer here 1 // TODO: doesn't know what 'p' is meant to be. 1 // TODO: Emit pip graph filesystem existence 1 // TODO: engine, engine abstract and frontend host controller are very similar. 1 // TODO: sorted dict? 1 // TODO: this is a good candidate for moving outside the parser! 1 // TODO: Have better provenance for configuration values. 1 /// TODO: This is IDisposable but is used so prevalently, leaving the IDisposable dangling is better than 1 // TODO: Replace PinBulkAsync in hibernate with PinAsync bulk call (bug 1365340) 1 // TODO: Change it to priority queue. 1 // TODO: saqadri - port 2 // TODO: Parse string literal types in JSDoc as well. 1 // TODO: CanonicalizedPath may deserve an NT-specific Canonicalize equivalent (e.g. PathType::Win32Nt also matches \\?\, but that doesn't make sense here). 1 // TODO: save distinct suspects to print hygienator CSV output 1 // TODO: add default case. Throw there or report an error gracefully! 1 // TODO:ST: this block should use ExpectsOptionalPath?!? 1 // TODO:ST: sounds reasonable to add "warning" if name was resolved but it is not exposed! 2 // TODO: this field is never used and should be removed. 2 /// TODO: Remove DataMemberAttribute and setter. 1 // TODO: A better way of doing this without copying bytes. 1 // TODO: add a comment that the order matters. 1 // TODO ST: now this operation may fail with TaskCancelledException. But this should be traced differently! 1 // TODO: Both name and property name point to the same node. Both elements are listed by the NodeWalker. 1 public /*TODO: sealed */ class ParsingOptions 1 // TODO: Note that we need to account for the upcoming 'yield' and 1 var typeArguments = type.Cast().TypeArguments; // TODO: Verify cast! (it will only work for IGenericType) 1 // TODO: Not sure if creating an absolute path is right. 1 // TODO: the 'debug' property should be serialized in "Serialize(BuildXLWriter, int)" and deserialized here 1 // TODO: Make these async (bug 1365340) 1 // TODO: Enforce this postcondition. 1 // TODO: It would be nice to call OnWarning(eventData); as a default action, but we cannot determine the type of event. 1 <# TODO: After unifying flags, remove if statement and hard-code dummy value into remoteCache #> 1 // TODO: consider revisiting this and keeping track of individually evaluated projects, so partial 2 // TODO: Consider if we should use a hashset to ensure we don't return the same session twice. Today we can return the same 1 /// TODO: this exists because ClusterManagementStore implements IClusterManagementStore, and we don't want to 1 // TODO: Event 1 // TODO: skipOutOfOrderNodes has to be used until meta-pips are ordered correctly. 1 // TODO:[3089]: We should instead detect this error by enforcing that source files never occur under the output root, 1 node.Cast().Name?.Kind == SyntaxKind.StringLiteral; /* TODO: saqadri - verify correctness! || IsGlobalScopeAugmentation(node.Cast());*/ 1 // TODO: Check return expressions of generators when return type tracking is added 2 // TODO: This is temporarily a marker interface to abstract away the Runtime model common to FrontEnds and DScript syntax. 2 // TODO: Verify correctness! - should this be List or List 1 // TODO:SQ: Return Unit type. i.e., some no-op type that represents void. 1 // TODO: We need to add support for RSP files to be precise 1 // TODO: Handle errors more gracefully in case someone has a 'lock' on the files. 4 // TODO: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v=vs.85).aspx says to call GetVolumeInformation to get maximum component length. 1 /// TODO: Chunk size optimization - centralize this when fixing BlobIdentifiers.cs 1 new IIdentifier Name { get; set; } // TODO:readonly 1 // TODO: De-duplicate code between related functions. 4 // TODO: For example: 1 /// TODO: Remove when it becomes obsolete 1 // TODO: Specify a small buffer size here (see HashFileAsync(SafeFileHandle)) 1 // TODO: Handle errors more gracefully in case someone has a 'lock' on the files. 2 // TODO: What is the difference between PropertyName and Name? 1 // TODO: potentially, we could check the number of changes compared to the workspace definition size. 1 // TODO: Support batched TryKeepUntilReferenceNodeAsync in Artifact. (bug 1428612) 1 // TODO: move parsing-specific functionality from DScript.Ast here. We currently have some duplication. 1 // TODO: make this consistent (nevertheless, 'main' field should go away when we move completely to V2...) 1 // TODO: this optimization should happen during Ast Convertion, not here! 1 // TODO: Handle multiple inheritance 1 // TODO: Do we ever have an object literal element with an empty or null property name? 1 // TODO: User Story 1492406: Enable ExecutableConnectionStringProviderTests for macOS 2 public interface IAnonymousType : IObjectType // TODO: Should this be IType? (IObjectType is essentially just an alias for IType) 1 // TODO: We hit this case, unfortunately, for the 'pipe busy' case as well as the 'no such pipe' case sometimes. 1 /// TODO: Introduce some intermediate abstract classes, reflecting that only some pips have a provenance, and that only some pips have tags, and that only some pips have descriptions. 1 // TODO: Maybe remove on transition to terminal state? 1 // TODO: fail if the input directory is not on a read-only mount. 1 // TODO: Maybe log on in the file? Definitely avoid the console to prevent a stack overflow. 1 // TODO: check! 1 /// TODO: OpenSource 2 // TODO: De-duplicate code between related functions. 2 // TODO: not sure about name!! 1 // TODO: once 'send' is capable of sending more than PIPE_BUF at once, allocate a bigger buffer and send that 1 /// TODO: we could consider associating spec parsing failures to the module as well (instead of, or on top of, adding it 1 // TODO: This is likely ERROR_NO_MORE_FILES; is there anything more to check or report when enumeration ends? 1 // TODO: Errors should fail sandboxing as it violates the invariant of total process observation 1 // TODO: We should evaluate whether compaction of entries is needed? 1 // TODO: something like word-pad associated with the log file extension, 1 // Full file path is required for libs (TODO: need to confirm) 1 // TODO: This could be cheaper by having filter implementations operate on a (path -> max write count) mapping, 1 // else TODO: Verify correctness - GetEffectiveArgumentCount can *technically* return undefined. 1 // TODO: Generally execution log analyzers shouldn't rely on textual log 1 // TODO: saqadri - duplicated with TypeScript.Net.Utils (Utilities.cs) 1 // TODO: most likely this method should change actual type (i.e., CLR type) of type argument and should create ResolvedType instead! 1 // TODO: Would be cleaner to just use the normal Report flags (per file / scope) and a global 'look at USNs' flag. 1 // TODO: Would be cleaner to always model console streams as outputs, but 'maybe present' (a generally useful status for outputs). 1 // TODO: Should we look at the CPU or MEM usage as well to decrease the limit? 1 // TODO: Verify correctness. The code below is a faithful conversion of the TS (I think!), however 1 // TODO: Remove the code below. When we register the GeneratedEventSources (ETW loggers), there is no listeners created. 1 // TODO: Should include the wildcard in enumeration reports, so that directory enumeration assertions can be more precise. 1 // TODO: assert that this is actually subsequent? 1 /// TODO: Failure / Possible are good candidates for instrumentation (we could generically log them all as they are created to ETW). 1 // TODO: Make ReadChars and WriteChars symmetric. 1 // TODO: Loading can be parallelized if we split the state into multiple files. 1 // TODO: why can arg be null?? 1 // TODO: Deprecate top-level PACKAGES field. 1 // TODO:SQ: Consider switching to proper stack type 2 // TODO: this should have the same value for all platforms. 1 // TODO: Add codePage support for readFile? 1 // TODO: The EngineBasedFileSystem should be replaced with a tracking file system that wraps the passed in filesystem 1 // TODO: extra allocation! 1 // TODO: Create type safe registration. 1 // TODO: This really shouldn't have failure cases. Maybe just failfast on allocation failure, etc. 1 // TODO: Consider an UntrackedScope or UntrackedPath above that has exactly the same path. 1 // TODO:SQ: IImportClause.Name should be Optional<> value? 1 // TODO: This function is not very performant and generates a lot of memory traffic 1 // TODO: Cache symbol existence for files to save text search 1 // TODO: This is dengerous, but needed to unblock Office conversion, at least temporarily. 1 /// This is mainly Office-specific. TODO: remove when Office is moved to V2 1 // TODO: This API will fail just because an entry isn't available, and that case isn't distinguishable (at least looking only at the interface). 1 // TODO: Does this function need to change for DScript imports? 1 /// TODO: The generic fingerprint type can go away as soon as we *only* do two-phase (weak -> strong) lookups; 2 // TODO: Need to optimize RecomputeWorkspace to handle multiple file changes efficiently. 1 /// TODO: try to refactor this to use the same logic as ReadOnlyDistributedContentSession. 1 /// /// TODO: This class could be removed when we start serializing the qualifier table 1 // TODO: trackAndOpenResult should have a subscription on it. 1 // TODO: string to falsy (empty string is falsy) 1 /// TODO: create a way to re-order a MultiValueTable. 1 // TODO: We can't mute processes when merging ES and detours events asynchronously without introducing some async callback 1 /// TODO: This is somewhat wasteful on machines with many fewer than 64 cores. 1 // TODO: This section can be deprecated because undefined is no longer evaluated to null. 1 // related issue (see/* TODO:above about logging provenance of a containing seal). 1 // TODO: As above: this API will fail just because content isn't available, and that case isn't distinguishable (at least by looking at the interface alone). 1 // TODO:365262 cleanup algorithm 1 "reportQueueSizeMb", // TODO: deprecate and remove 1 // TODO: this flag is not properly propagated for all detours operations. 1 // TODO: Remove this once we can add timestamps for all logs by default 1 // TODO: What to log here? 1 // TODO: Some other settings like strict metadata CAS coupling should be properties of the cache and not something 1 // TODO: in TS implementation this is a Map, but its keys are numeric, 1 processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, @"C:\PROGRA~1\"))); // TODO: This but better 1 /// TODO: Remove that and keep a reference to the module Pip instead. 1 "numberOfKextConnections", // TODO: deprecate and remove 1 /// TODO: for now all the frontend folder is flagged as non-scrubbable. Consider pushing this down to each registered resolver. 1 // TODO: use ref struct and pass it by in once migrated to C# 7.2 1 // TODO:SQ: Verify correctness 1 // TODO:#1208464 - this can be removed once SymbolDaemon targets .net 4.7 or newer where TLS 1.2 is enabled by default 1 // TODO: Should we skipped PostProcess when Process failed? In such a case then PipExecutor.ReportExecutionResultOutputContent should not be in PostProcess. 1 // TODO:ST: see Parser.cs:907 (method TryJoinPathExpression). Is it correct? 1 // TODO: remove the check. 1 // TODO: need to change the scanner to use StringId instead of string. 1 /// TODO: BUG 1904974 1 // TODO: Investigate using ManagedParallelBlobDownloader instead (bug 1365340) 1 // TODO: this is slight change in behavior. 1 // TODO:ST: instantiation is happening more than once! 1 // TODO: Enumeration will happen again when the file content manager tries to discover the content of the exclusive opaque. Consider doing this only once instead. 1 // TODO: Why doesn't this return true? 1 // TODO:ST: remove hardcoded values! Move them to ObjectToString. 1 // TODO:SQ: Consider moving these to a ResetState method 1 // TODO: consider merging this function with 1 // TODO: What about ADR? Is it safe to do a straight-copy? 1 // TODO: This is just here because the cloud build requires manually dropping the necessary executables and libraries, and should be removed 1 // TODO:if we want to enforce this we should implement BlobBlockHash.BlockSize (bug 1365340) 4 public interface IIterableOrIteratorType : IObjectType, IUnionType // TODO: Should this be IType? (IObjectType is essentially just an alias for IType) 1 // TODO: Maybe like UNC paths we need just insert components like "\\?\C:". But the algebra would be tricky - what if we add a component to \\?\C: 1 // TODO: Remove this! 1 /// TODO: Thus, this data structure is kept alive here. We may also want to remove it later. 2 // TODO: suppressing this for now, but the clients need to respect that the result of this method may be null. 1 // TODO: switch checks. Use direct cast first and then check union case. But measure first. 1 // TODO: So, in theory we should copy the current contents of the file 1 // TODO: Path.interpolate(x, y, z) is similar to x.combinePaths(y, z). The latter can be slightly more efficient because no look-up for "Path" identifier. 1 // TODO: These options are left to give consumers window to remove them from wrapper scripts. 1 // TODO: The IToolParameterValue interface doesn't fit BuildXL well since it makes the command line 1 // TODO: Do we need these fingerprints given that the metadata hash is provided by this interface in the first place 1 // TODO:SQ: How do you decide that 2 parameter declarations are equal (without doing deep comparison)? 1 // TODO: We probably want a way to specify an instance as well, perhaps overload the parsing. Use a named qualifier if starting with alphanumeric. Use an instance when starting with "{"? 1 // TODO: This is weird. It is actually a case where the kind of the node is PropertyAccessExpression but the node 1 // Things TODO : 1 [Fact(Skip = "TODO: Failing locally during conversion")] 3 processBuilder.AddUntrackedDirectoryScope(DirectoryArtifact.CreateWithZeroPartialSealId(AbsolutePath.Create(m_context.PathTable, @"C:\PROGRA~2\"))); // TODO: This but better 1 // TODO: Explore ways to infer if the closed file was actually modified e.g. open() path/handle cache then lookup + mod time check on close? 1 /// TODO: Should this implement ? 1 // TODO: Snapshot mode does not work when loading cached graph. Can input tracker be used to capture/load the same information as 1 // TODO: Should include the wildcard in enumeration reports, so that directory enumeration assertions can be more precise. 2 // TODO: remove in favor of 'outputs' when the corresponding obsolete field is removed 2 // TODO: no explicit inputs are allowed in OD dependencies. 1 // TODO: This loop takes 10% of the deserialization time; make faster. 1 // TODO: Verify equivalence: 1 // TODO: If this is set to true, then NuGet will fail if TMG Forefront client is running. 1 // TODO:ST: consider better design for optional named stuff. 1 // TODO: a more compact version can be generated, but the case of multiple variables per statement is not that likely to occur 1 // TODO: perhaps use attributes to denote the option -> name translation? 1 // TODO: consider adding a cache from manifest paths to containing shared opaques. It is likely 1 // TODO: why the destination str 1 // TODO: Right now we check TryQuerySealedOrUndeclaredInputContent, and then the VFS if that fails (we assume the two are in agreement!) 1 // TODO : Are environment variables usefull for analysis 1 return IsIndependentVariableLikeDeclaration(declaration.Cast()); // TODO: Verify cast! 1 /// TODO: remove this when Office is in DScript V2 1 // TODO:365262 - use AddChunk 4 // TODO: Loading and Saving involves a bunch of unnecessary copies. 1 // TODO: instead of manually doing all of that we should make our helpers more efficient and as allocation free as possible. Work Item: 1883860 1 // TODO: Handle all whitespace or fix properly 1 // TODO: Fix me! 1 // For now we just skip the list of processes to breakaway. TODO: a future implementation may consider these 1 // TODO: deprecate this. 1 /// TODO: the type should be merged with SyntaxFactory in the next iteration. 1 /// TODO: configPath is always invalid for the case of a regular source resolver (and it is not for the default source resolver). Revise this logic. 1 // TODO: move this to BuildXL.Native.Processes 1 public interface ITupleType : IObjectType // TODO: Should this be IType? (IObjectType is essentially just an alias for IType) 1 // TODO: cancellation is not supoprted properly by managed checker. 1 // TODO: We put the CompactSet first since it contains a reference and so should be pointer-aligned. The subsequent fields need only 4 byte alignment. 1 // TODO: Verify cast 3 // TODO: Note, the ErrorCodes enum are the defined set that is reserved 1 // TODO: Shouldn't need to force the cache until the execution phase; this can be fixed when BuildXLScheduler is constructed only in the Execute phase. 1 // TODO: do we need to consider the case where a module just contains const enums? 1 // TODO: change Apply to take EvaluationResult but not objects! 1 // TODO: This dumps a very low-level table; consider producing a nicer representation 1 // TODO: We store a (path, hash, encoding) tuple for stdout/stderr on the metadata. This is because 1 // TODO: should the project be registered only when the parse is successful? 1 // TODO: Message 1 // TODO: consider logging this case 1 // TODO: not needed? Contract.Requires((int) to <= PipStateRange.MaxValue && (int) to >= PipStateRange.MinValue); 1 // TODO: Need to go back to `let _a = class C {}` approach, removing the defineProperty call for now. 1 // TODO: consider adding a special collection with one element. 1 // TODO: Task 15106291: Optimize RecomputeWorkspace to handle multiple files. 1 /// This is usually a phony node. TODO: Remove phony nodes 1 // TODO: add cancellation support for EnumerateContentInfoAsync 1 // TODO: The API will provide the paths of the generated files in the result in a future version 1 // TODO: We could take advantage of knowing what's on critical path, and not slow down those processes 1 // TODO: The TypeScript implementation defines Instantiations as Type[], but its usage 1 // TODO: Review for error recovery 2 // TODO: We may want to check if the files on disk are up-to-date. 1 // TODO: We can remove this step if ListSealedDirectoryContents is changed to returned expansion-sorted results. 1 // TODO: This API will fail just because content isn't available; see below for that case. 1 // TODO: Thus, we can avoid implicit directory enumerations on collecting packages/projects. 1 // TODO: Verify equivalence and update comment (copied fall-through case explicitly) 1 // TODO: TryQueryDirectoryFingerprint should be in agreement with the VirtualFileSystem somehow. 1 REM TODO: Uncomment when these restrictions are relaxed. 2 // TODO:SQ: Need to call bind(n) on each child in the node, but there is no 1 ignorePreloadedDlls: true, // TODO: Change this value when the default value for ignorePreloadedDlls changes. 1 /// TODO: In the future we can consider different semantics that fit our needs. 1 // TODO: These two methods need to be deprecated. 1 // TODO: Consider a more specific failure stating that the reference is malformed (from a path point of view) 1 // TODO: Add telemetry to determine how often this happens; consider adding state to map these changes to individual graph nodes. 1 // TODO: check about BuildXL spec file 2 // TODO: Add directory enumerations link to 1 /// TODO:SQ: This comment is a lie. Fixup/investigate 1 // TODO: If only directory dependencies matched, only include outputs from those directories 1 // TODO: type: "string" | "int" | "bool"; 1 // TODO: check that this map is correct! 1 // TODO: We are just looking at one top-priority pip that got previously postponed because of semaphore constraints. While that one doesn't fit, there might be some other one that fits now. However, finding that in the heap of postponed pips in an efficient is not trivial (we shouldn't traverse all postponed pips every time). 1 // TODO: Help text 2 // TODO: The following is problematic, as the TPL may choose to run the continuation on the thread that causes the task to transition into its final state --- if that thread then blocks, we might get into a deadlock! 1 // TODO:MSR - we should declare the "end" consistently (right now we use both MinReached and EndReached) 1 /// TODO: Consolidate with GrpcClient to deduplicate code. (bug 1365340) 2 // TODO: think about error message here! But maybe validation should be performed in a separate step. 1 // TODO: This is inconsistent with write behavior, which sets ReportLevel::Ignore and returns ERROR_PATH_NOT_FOUND to the caller. 1 // TODO: Chunk size optimization 1 // TODO: Deal with computed properties in error reporting. 1 // TODO: if this case is even legitimate. 1 /// TODO: temporarily making the default true until WDG sets the flags or let us remove the flag completely. 1 // TODO: We could set a recursion-limit to allow some fraction of repeated IOs to complete synchronously, without 1 // TODO: This should be scheduled on a separate I/O pool with plenty of threads. 1 // TODO:365262 - use AddChunk 1 // TODO: Uncomment when we start supporting this at runtime 1 // TODO: Implement better ConcurrentBag that doesn't allocate on every add. 1 // TODO: Verify equivalence! 2 // TODO: File.Exists returns false for directories; this is unintentional and we should move away from that (but that may break some existing users) 1 // TODO:SQ: IVariableLikeDeclaration for this function seems unnecessary 1 // TODO: This doesn't change any state for rewrite validation. Oops. 1 /// TODO: Find a standardized way to do this. 1 // TODO: Don't assume particular hash types (this is particularly seen in WorkspaceNugetModuleResolver.TryGetExpectedContentHash). 1 // TODO: ToArray is expensive here. Think about alternatives. 1 // TODO [pgunasekara]: Add a cancellation token here 2 /// TODO: this constant and the related mspdbsrv.exe handling for compiling with /MP need to be moved to all C++ pips instead of just MSBuild pips. 1 * TODO: this should be kept per client. 1 // TODO: If the source register is PC, what should we do? 1 // TODO: it would be good to have some kind of identifier for the checkpoint 1 // TODO: this implementation coudl be very naive right now! 1 // TODO: Add publisher, and parse version properly. 1 // TODO:365262 - add a more visible exit 1 // TODO: add a comment! 1 // TODO: this would be quite a bit more robust if it checked the job object to get parent rather than 1 /// // TODO:ST: clarification: in TypeScript following syntax is invalid: X.E.v, so following comment is true, but this is an example of deviation from typescript. 1 Analysis.IgnoreArgument(objectLiteral); // TODO: Why do we even pass in this argument? 1 /// TODO: In the future this can be used by the scheduler itself to keep track of its statistics. 1 /// TODO: this is not properly documented by WDG yet. 1 /// TODO: Re-evaluate this class as this might eat a lot of memory. 1 // TODO: Since we can atomically know the set of previous flags, it would be much nicer if we avoided 1 // TODO: to save space we can potentially use C-style union types that will use the same space 1 // TODO: Note that the inner exception here doesn't account for TryDeleteViaMoveReplacement; 1 // TODO: This is a terrible hack but we have same-named incompatible modules from the cache, this was the only workaround to get it working 1 /// TODO: Get information about agent leases from AnyBuild, and so this number can be set dynamically. 1 #pragma warning disable 1591 // disabling warning about missing API documentation; TODO: Remove this line and write documentation! 1 // TODO: Does not adding on success == false change behavior 1 // TODO: will consider making this a different table 1 /// TODO: Clearing this cache relies on restart of the cache. We need to think of a better way to handle its unbounded growth, or at least add telemetry to track it. 1 => 0; // TODO: Task #1272136 (FileContentTable) 1 // TODO: Hack -- when phase Evaluate is use, then release workspace. This is for Office to be performant. 1 // TODO: use a builder here? 400K or so objects seems livable though.... 1 // TODO: revisit. Adding this to avoid a crash 1 // TODO: Track stats about file materialization (i.e. how much content was hydrated) 1 // TODO: the linter is instantiated many times with the same set of policy rules, which is the only parameter 1 /// TODO: for now we just return an underscore flattened name that is built using the relative path of the project 1 // TODO: Consider doing filtering on the engine side 1 // TODO: Keep the segments in the AbsolutePath object? 1 /// TODO: BUG1903935 1 // TODO: can we leverage Array.Copy here? 1 // TODO: Some kind of strategy to trigger enumerating directories with commonly probed members 1 // TODO: Timeout. Long create checkpoint could lose master while checkpointing. 1 // TODO: It'd be nice if we had a FailFast equivalent that went through AppDomain.UnhandledExceptionEvent for logging. 1 // TODO:365262 - reset other members such as m_numZeroRun, m_regressChunk, etc 1 type.OuterTypeParameters.Concatenate(typeArguments.Select(t => GetTypeFromTypeNode(t)).ToList())); // TODO: Verify correctness 1 // TODO:1011977 this is a hacky fix for a bug where we delete SourceSealDirectories in /cleanonly mode 1 // TODO: switch values to use EvaluationResult to avoid boxing. 1 // TODO: When adding a new CloudBuild event, you have to add it to the GetType() method below 1 // TODO:365262 - exit here from the routine 1 // TODO: Compare if the file is actually different and only write when different 4 /// TODO: Non-windows platforms? 1 // TODO:ST: I don't think this condition is correct. 1 : type.Cast().Target.LocalTypeParameters; // TODO: Verify cast 1 auto check = bxl->report_access(__func__, event); // TODO: this step should only check permission without reporting anything if allowed 1 // TODO: CalibrateAsync method fails in tests all the time. Bug #1331905 1 // TODO: revisit 1 // TODO:ST: add a comment that will explain the difference between ArrayExpression and ArrayLiteral! 1 // TODO: error handling 1 // TODO: how should the fastest write work - this keeps 1 // TODO: Our version of IsLiteralNameOfPropertyDeclarationOrIndexAccess does not suppoert computed property or string literal type 1 // TODO: Output file 1 // TODO: Reconcile this. I cannot enable this contract assumption. 1 // TODO:SQ: Check casts - we are casting up (IIdentifier)! 1 // TODO:SQ: Be explicit about string comparer 1 // TODO: Verify casts 1 // TODO: consider switching to Span (bug 1365340) 1 // TODO (1888943): support different retry kinds to notify the clients that the retry should happen after a longer period of time, for instance. 1 /// TODO: consider reusing a single prelude manager for all configuration conversion tasks, 1 // $TODO: 1 // TODO: Deploying here is redundant if the console stream was also a declared output. 1 // TODO: This is a temporary flag. Remove it once we no longer need it. 1 // TODO: this needs to be removed once semantic evaluation will work only with new qualifiers. 1 // TODO: This is still relatively inefficient. We're taking a lock per hash and pinning each individually. (bug 1365340) 1 // TODO: this was just 'return'. It means that this function potentially could have 3 different return values! 1 // TODO: This is pretty expensive, as it loads all pips in memory 2 // TODO: computing provenance here is not straightforward, but it'd good to add 1 // TODO: remove when all V1 modules are gone 1 // TODO: Embed HashType in XLG file and update analyzer to use that instead of setting HashType globally. 1 IgnoreFullReparsePointResolving = true; // TODO: Change this when customers onboard the feature. 1 // TODO: Indicating user vs. internal errors (and particular phase failures e.g. adding to job object or injecting detours) 1 // TODO: Why do we not simply call ZwCreateFile, just like NtOpenFile? 1 // TODO: Promote the last-chance handler from BuildXLApp to here? 2 // TODO: this is a hack! 1 // TODO: So when you ask the type-checker for "contextual type" 1 // TODO: context for the type checker to perform its work since it simply 1 // TODO: belonging to a strongly typed variable declaration. 1 /// TODO: This class could be removed when we start serializing the qualifier table 1 // TODO: add removed dependencies in output 1 // TODO: information, it cannot do so because that "word" has not 1 // TODO: error check that there are no zero entries in m_relations 1 // TODO: this should be enforced in the future. 1 /// TODO: This is an intermediate step. An actual solution can store 'resolver' into the parsed module itself 1 // TODO: This can be moved to a linter. 1 // TODO: We should have our own to report out too... 1 // TODO: It would be nice to predict the buffer size accurately. 1 // TODO: Verify correctness! List contains will do pointer comparison! 1 // TODO: query weight (how much does it cost). We should adapt scheduling policy to have lighter queries prioritize earlier than the others. 1 // TODO: allo adding prefix : SourceNamespace,Island,BuildName,Branch,BuildDate,ComputerName,Architecture, 1 // TODO: Fix this code once the frontend supports a proper virtual FileSystem. 1 // TODO: Process dynamically observed absent path probes 1 // TODO: optimize and run in parallel if needed. 1 /// TODO: Reconsider this approach once perf measurements have been performed. 2 // TODO: this can be implemented in the future. Making the composite opaque the producer of the file is not a big deal but 1 // TODO ST: Add tests to check the capacity limiting logic. 1 // corresponds to the target. TODO: Get rid of all phonies. 1 // TODO: Should IPC pips always be marked perpetually dirty? 1 GetDeclaredTypeOfSymbol(symbol).Cast().ThisType; // TODO: Verify correctness - how can we safely cast to IInterfaceType? 1 // TODO: Consider FailFast for the !disposing (finalizer) case. 1 // TODO: If this method turns out to be the bottleneck, we can make it parallel later. 1 // TODO: Dynamic 1 // TODO: this component doesn't have a quota, which could potentially be useful. If Azure Blob Storage 1 // TODO: This is wrong (loses the seal id but it probably doesn't matter since this isn't used for comparison) 1 => new byte[0]; // TODO: this is only used for communication between BuildXL and external sandboxed process, which we don't do yet on Unix systems. 1 // TODO: if needed, override hardcoded locations with env vars 1 // TODO: Counter? 1 // TODO: retry? 1 // TODO: change to a regular BuildXLReader when we start serializing the qualifier table 1 // TODO: add these VSTS-related parameters to the optional list of parameters the analyzer can take 1 // ||| TODO: We should have well structured events like normal. As a stopgap, we've promoted some Console.WriteLine debugging to some single-string events. 1 // TODO: Revisit this if BuildXL gains a way to declare an enumeration dependency (on the directory) or probe-only dependencies (on the known contents). 1 /// is for now shared between workspace resolvers and IResolvers. TODO: This methods should be removed when IResolver package-interpretation 1 // TODO: Check whether this handles long paths appropriately. 1 public interface IResolvedType : IObjectType, IUnionOrIntersectionType // TODO: Should this be IType? (IObjectType is essentially just an alias for IType) 1 // FancyStrongFingerprintCache.TryGetValue(pathSetHash, out strongFingerprint); // TODO: Oops. Side channel is broken again. 1 // TODO: This nuclear deletion is a temporary measure to deal with the fact that shared opaque directory outputs are not known 1 // TODO: Multiple modules 1 // TODO: Consider not allowing matching of non-public values. 1 // TODO: should we notify when the document is removed? 1 // TODO: temporarily getting this as a set due to an MSBuild bug where edges are sometimes duplicated. We can just 1 // TODO: This doesn't seem to be the right place for WorkerId. Move it to a more appropriate class (PipResult?) 1 // TODO: The contract below looks very nice but breaks tons of UT 1 // TODO: This requirements should be relaxed when we fully implement default qualifier keys 1 REM TODO: this list contains temporary nowarns as we tighten down the language and until specs are updated to the latest syntax 1 // TODO: if we ever want to support Promise in DScript, we need to fix this. 1 // TODO: this is a temporarily flag. Take it out in few weeks. 1 // TODO: allow cached expiry time to be within some bump threshold (e.g. allow expiryTime = 6 days & endDateTime = 7 days) (bug 1365340) 2 // TODO: Should this be moved before setting node for safe enumeration 1 // TODO: this is circuit breaker to avoid stack overflow for one of the cases! 1 // TODO: dsc extension! 1 // TODO: Remove this once reduced metabuild materialization is fully tested 1 /// TODO: This is DSCript V1 behavior we couldn't get rid of 1 // TODO: Check whether this is the same BuildXL value as the other projects in this msbuild file 2 // TODO: This shouldn't always be an error. 1 ReasonMask = uint.MaxValue, // TODO: Filter this! 1 // TODO:Add removed dependencies when compared to other log 1 // TODO:ST: validate and prohibit from non const expressions here 1 // TODO: (2) to allow rewriting source, I need to add input before output (and this sounds more natural). 1 // TODO: original implementation returns nothing. 1 // TODO: Verify correctness. Same comment as the one above in GetElementTypeOfIterable 1 // TODO:SQ: Use node.Kind? 1 /// TODO: eventually we should move out from this one and start using 1 // TODO: do we need to do visibility check on type parameters? Task 1066456 1 // TODO: Perhaps should have a specific access check for enumeration. 2 /// TODO:409239: We also disable this when reloading multiple path tables, as a workaround for debug tag collisions. Need to properly serialize and re-map debug tags. 1 // TODO: Verify correctness! (there seems to be no guarantee that node.Parent.Parent will be type IVariableLikeDeclaration) 1 // TODO: These are methods, so handle computed name case 1 // TODO: add a test case to cover different epochs 1 // TODO: Right now, we only care about the disk active time. We should also take the avg disk queue length into account. 1 // TODO: Consider reading/writing in parallel 1 // TODO:ST: hide module instantiation from the clients! 1 // TODO: Generate CSV summary output, html output tables with suspect summary 1 /// TODO: Ideally the front end should stop depending on the front end engine abstraction, whose public surface is already too big, and the functionality 1 // TODO: with C# 7, use tuple instead of changing the workspace to carry the information about the filtering. 1 // TODO: This condition was in the code previous to the 1 // TODO: When you type the character 'p', the identifier is 'p', the parent 1 // TODO: Gemerage CSV summary 1 /// TODO: Consider making this less object-y and more columnar... store all the declared input files 1 // TODO:SQ: if externalModuleIndicator == null, shouldn't inStrictMode be false?! 1 // TODO: Implement IT handler 1 // TODO: Faster path for getting size of file. Also would be good to batch somehow. 1 // TODO: Use prior lock write count to skip doing second read. Beware, 1 // TODO: this struct can leverage 'DontUseDefaultContstructorAttribute' from ErrorProne.NET because 1 // TODO: Change DedupContentSession to use BackingContentStoreConfiguration 1 // TODO: Verify correctness/equivalence 1 // TODO: What is the literal for null 1 // TODO: Note that a single thread crashing could still deadlock if it tries to acquire locks held on its own stack. 1 // TODO: If dependency changes are in temp folder ignore because they have no impact. 1 // TODO: Debugging for a one-off crash that we aren't sure still exists. 1 // TODO: ThisTypePredicate | IdentifierTypePredicate 1 // being investigated. TODO: revisit this once this is fixed. 1 // TODO: Remove this once the remote properly handles the directory's nonexistence 1 // TODO: We should not be able to get the string representation of a path atom as is. 1 /// TODO: this is done in a single-threaded fashion. Consider making this multi-threaded and cacheable 1 // TODO: 1 // TODO: While disabling this for now is fine, '/' denotes the root path of every absolut Unix path and can't be misused as char 1 // TODO: Wait for health signal? 1 // TODO: This is okay, but we need to complement this behavior with reporting the enumeration on the directory. 1 // $TODO: When this is removed, please also remove the method VerboseEvent_RemoveMe 1 // TODO: This is a poorly exercised and very exceptional path; for simplicity consider throwing (failfast exception?) 1 // TODO: this cannot be the way to do it 1 // TODO: This tool could be much improved by not retrieving content sizes 1 // (TODO: consider using AbsolutePath as key) 1 // TODO: Make thread safe! 2 // TODO: In groups of 1000 (bug 1365340) 1 // TODO: Compute transitive closure of failed pips to see if the graph has changes, but this may be too noise in some cases 1 #pragma warning disable 1591 // disabling warning about missing API documentation; TODO: Remove this line and write documentation! 37 // TODO:SQ: Memory growth - The 4 fields below grow the memory of each node by 4 pointers 2 // TODO: in any case, this should be moved to Interop.IO so that there it is decided 1 // TODO: support cancellation 10 // TODO: we should not have special cases to condition emitting comments 1 // TODO: this should be changed to preconditions for interface members! 1