Artifact [a85d5f4a2f]
Not logged in

Artifact a85d5f4a2fe20310b024440696361ac3fff180c6:



************************* Beta 1.0.XXXX.XXXXX RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #353085 to #355979.

BUGFIX: the SwapCommands method should clear the IExecute caches when support
        for them has been included in the core library.

BUGFIX: avoid a NullReferenceException from the GlobalState.GetAutoPathList
        method.

BUGFIX: the [getExternalIpAddress] core script library procedure should not
        attempt to use the [string is inetaddr] sub-command when running in
        native Tcl.

BUGFIX: fix typo that could lead to a script error in the core script library
        helper procedure [doesCompileCSharpWork].

BUGFIX: make sure current test name value is propagated to all created test
        interpreters.  robustness fixes for tests processIsolation-1.1 and
        xaml-1.*.

BUGFIX: *MAJOR* the ScriptTraceListener class must use cooperative locking on
        all overridden TraceListener methods to avoid deadlocks when getting
        the interpreter lock.

BUGFIX: *MAJOR* the DebugOps subsystem cannot make use of blocking locks, to
        avoid deadlocks when custom trace listeners are present in case those
        trace listeners need to use blocking locks, e.g. the interpreter lock.

BUGFIX: *MAJOR* the MaybePopulateResultErrorProperties method must acquire the
        interpreter lock and check for disposal.

REFACTOR: enhance the diagnostics emitted by the [checkForUpdate] core script
          library procedure.

REFACTOR: *BREAKING CHANGE* be more aggressive about locking in the default
          interpreter host.

REFACTOR: *BREAKING CHANGE* change HealthCallback delegate to make the status
          flags parameter input / output.

FEATURE: add the TryLockNoThrow method to the ISynchronize interface.

FEATURE: add experimental support for annotating procedures declared inside
         of non-global namespaces as "private".  private procedures may not
         be called from anywhere outside of their parent namespace.

FEATURE: improve SwapCommands method so it can swap out all normal and hidden
         commands, including those implemented by a bare IExecute.

FEATURE: add the ExtractAnnotations method to the Value class.

FEATURE: add the FormatAppDomainId, GetAppDomainCounts, IsCurrentAppDomain,
         CreateWebClient, GetWebMaximumRetries, SetWebMaximumRetries,
         SleepForWebRetry, and TryLockAndExit methods to the Utility class.

FEATURE: add the WatchdogStatus property and the TryLockAndExit method to the
         IInterpreter interface.

FEATURE: *BREAKING CHANGE* modify the Utility.ExtractPolicyContextAndScript and
         Utility.ExtractPolicyContextAndFileName methods to accept an integer
         timeout parameter.

FEATURE: *BREAKING CHANGE* add integer Timeout property to the IPolicyContext
         interface.

************************* Beta 1.0.8613.27347 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #330323 to #342758.

BUGFIX: add preliminary support for the .NET 8.0 runtime.

BUGFIX: when cloning variables for [scope create -clone], make a copy of the
        variable container dictionary before passing it into the method that
        enumerates it (i.e. MaybeCopyFrom), since arbitrary variable traces
        may be fired, which may then modify the original variable container
        dictionary.

BUGFIX: for the purposes of [scope create -clone], make sure the auto-path
        variable is treated as a "special variable" and skipped over.

BUGFIX: script library helper procedures from file3.eagle depend on those from
        runopt.eagle being available even when running in native Tcl.

BUGFIX: add several missing procedures from the test constraints package to the
        list of its native Tcl exports.

REFACTOR: *BREAKING CHANGE* add the ISynchronizeStatic interface, rename the
          ISimpleSynchronize interface to ISynchronizeSimple, and support the
          ISynchronizeStatic interface in the Interpreter class.

REFACTOR: *BREAKING CHANGE* completely rewrote the Variant subsystem and all
          the associated expression operators to simplify the code and improve
          performance.  Special thanks to PaulBraetz@GitHub for inspiring this
          work.

REFACTOR: *BREAKING CHANGE* all write access to the System.Console class now
          go through the ConsoleOps or HostOps classes.  Optionally, these can
          both be configured to use the native Win32 API WriteConsoleW.

REFACTOR: *BREAKING CHANGE* enhancements to the tracing subsystem to provide a
          bit more context for each message.

REFACTOR: *BREAKING CHANGE* move all test related interpreter flags into a new
          enumeration named InterpreterTestFlags.  added interactive #dtflags
          and #itflags commands.  added -noCleanup option to [test2] command.
          add InterpreterTestFlags property to the InterpreterHelper class.

REFACTOR: *BREAKING CHANGE* add the file2u.eagle core library script file, move
          several Unicode related procedures into it, and add two more sets of
          procedures, one for Unicode without line-ending translations and one
          for UTF-8.

FEATURE: add [string is versionrange] sub-command.

FEATURE: add listRuntimeOptions and toggleRuntimeOption core script library
         helper procedures.

FEATURE: add [package absent] sub-command.  it will raise a script error if a
         specified package is present in the interpreter.

FEATURE: add [string is inetaddr] sub-command and the [getExternalIpAddress]
         core script library helper procedure.

FEATURE: add [file trusted] and [file verified] sub-commands.

FEATURE: add the -trustedonly and -verifiedonly options to the [object load]
         sub-command.

FEATURE: add [host font] sub-command to query and/or change font used with the
         System.Console class.

FEATURE: add support for decimal and double option values.

FEATURE: add GetNullableTimeSpan2 method to the Value class.

FEATURE: add GetTotalLength, IsFramework20, IsFramework40, CopyTrustedHashes,
         CheckDefineConstants, FormatTracePriority, FormatDefineConstants, and
         GetUtcNowTicks methods to the Utility class.

FEATURE: add overloads for the PushActiveInterpreter, HashString, GetBytes,
         GetUniqueElements, and QueueUserWorkItem methods within the Utility
         class.

************************* Beta 1.0.8503.24499 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #300175 to #316072.

BUGFIX: prevent the built-in Diagnostic host from emitting one character at a
        time when writing to its (standard channel) streams.

BUGFIX: empty strings should always return nothing from the [split] command.

BUGFIX: hashing script file contents that are not present on the file system
        should refer to the originally read text, not line-ending translated
        script text.

BUGFIX: when calling FixupReturnValue, always pass a brand new dictionary of
        options for use by create aliases.

BUGFIX: the [incr] command should not allow argument values with non-integer
        internal representations.

BUGFIX: fixes to the special "args" argument handling for the [nproc] command.

BUGFIX: fix to sub-directory deletion handling in the Utility.CleanupDirectory
        method.

BUGFIX: add null checks to several type comparision methods of the MarshalOps
        class.

BUGFIX: honor policy trace output truncation when using MaybeEmitPolicyTrace.

BUGFIX: the GetPackageRelativeFileName method needs to make sure global package
        paths are initialized prior to using them.

BUGFIX: decouple plugin strong name verification from its evidence extraction.

BUGFIX: by default, do not keep the test trace listener log file stream open.

BUGFIX: fix pending script checks in the MaybeCancelBusyOrNot method, which
        prevented ResetCancel methods from working properly in some cases.

REFACTOR: improve semantics / naming conventions used by the runtime detection
          subsystem.

REFACTOR: robustify static initialization for created AppDomains.

REFACTOR: make the Interpreter.Create method retry attempts to fetch (and add)
          instances within the global state.  also, further robustify against
          locking errors within the global state, e.g. track whether or not an
          interpreter was actually added to the global state, etc.

REFACTOR: internal cleanup of methods supporting the IEntityManager interface,
          including PrivateHas*, PrivateDoes*Exist, and PrivateRemove* methods.

REFACTOR: improve tracing of lock acquisition errors.

REFACTOR: make it possible to disable interactive input, which causes input to
          be buffered for later use.

REFACTOR: enhance responsiveness of the status form closing / disposal logic.

REFACTOR: add preliminary support for "kit" packages within the core library.

REFACTOR: add Engine.QueueWorkItem method overload that supports a ThreadStart
          parameter type.

REFACTOR: add Engine.ExternalExecuteWithFrame method overload that makes all of
          its flags arguments optional, pulling their values from the specified
          interpreter when necessary.

REFACTOR: improve performance of creating interpreters when using the built-in
          lists of commands, functions, etc.

REFACTOR: add experimental cache for StringBuilder instances used within the
          core library.

REFACTOR: allow opaque object handles for the connection and/or transaction to
          be used by the [sql execute] sub-command.

REFACTOR: *BREAKING CHANGE* for consistency, rename AsynchronousBridge class to
          AsynchronousCallbackBridge.

REFACTOR: *BREAKING CHANGE* remove the Verbose plugin flag.

REFACTOR: *BREAKING CHANGE* improve formatting of CommandLogEntry lines.

REFACTOR: *BREAKING CHANGE* modify RestoreCorePlugin and RestoreMonitorPlugin
          methods to require an additional boolean parameter.

REFACTOR: *BREAKING CHANGE* the [list] command is no longer included in the
          subset required by the license SDK.

FEATURE: add ProvideEntropy property to the IInterpreter interface.  when set,
         it will be used to supply entropy to the interpreter instead of its
         associated RandomNumberGenerator instance.

FEATURE: add -setall option to the [exec] command.  when used, it forces all
         captured values to be set into their associated variables even if an
         error occurs.

FEATURE: add the ForceTrustedHashes environment variable to work around issues
         with native X509 certificate trust checking.

FEATURE: add the PrepareInterpreterCallback and InitializeInterpreterCallback
         static callback properties to the Interpreter class.

FEATURE: add WebTransferCallback property that allows the web download / upload
         functionality for an interpreter to be customized.

FEATURE: add -logflags option to the [debug trace] sub-command.

FEATURE: add the [xml foreach] sub-command to iterate over a set of (matching?)
         XML nodes.

FEATURE: add -anythread and -needclientdata options to the [load] command.

FEATURE: add RemoveCommands method and MaybeRename* methods to IEntityManager
         interface.

FEATURE: add MergeTrusted* methods to the ITrustManager interface.

FEATURE: add CreateStateFlags property to the IInterpreter interface.

FEATURE: add GetVariableViaResolversWithSplit method to the IResolveManager
         interface.

FEATURE: support extracting the unique identifier for a script from its text.

FEATURE: add two RemoveCommands method overloads to IEntityManager interface.

FEATURE: add ClearInterpreterForSettings, GetManagedExecutableName, HashBytes,
         ComparePathParts, GetPackageScanCommand, VersionCompare, IsUnderPath,
         GetPeFileDateTime, ConsoleKeyboardString, AppDomainIsStoppingSoon,
         DoesTokenInterpreterExist, SetOfflineMode, ExtractZipFileToDirectory,
         InOfflineMode, ClearInterpreterForSettings, IsInteractive, GetVersion,
         GetOperatingSystemNameAndVersion, and GetRuntimeNameAndVersion methods
         to the Utility class.

FEATURE: add [uri get] and [uri post] sub-commands, which work almost the same
         as the [uri download] and [uri upload] sub-commands, except that their
         use also implies the -inline option, which can now be disabled via the
         new -noinline option.

FEATURE: add [interp iterationlimit] sub-command in order to limit the number
         of iterations allowed for loops.

FEATURE: add -all option to the [interp rename] sub-command.

FEATURE: add [napply] command that works like [apply], but requires the use of
         named arguments.

FEATURE: *BREAKING CHANGE* allow the [uri get], [uri post], and [uri isvalid]
         sub-commands from within "safe" interpreters as long as URI argument
         is considered trusted.

FEATURE: *BREAKING CHANGE* add ResetHistory method to the IHost interface and
         the -history option to the [host reset] sub-command.

FEATURE: *BREAKING CHANGE* add the FindFlags and LoadFlags properties to the
         InterpreterSettings class.

************************* Beta 1.0.8369.11942 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #283423 to #299487.

BUGFIX: correct argument synchronization in core shell support, including in
        what-if mode handling, arguments file handling, and the -reconfigure
        command line option handling, et al.

BUGFIX: prevent extended box characters from being used when the encoding being
        used for console output does not represent them in a single byte.

BUGFIX: fix typo in CountInterpreters that prevented the DisableCreation method
        from working correctly.

BUGFIX: use save/restore semantics for the current directory when cleaning up
        temporary files during interpreter disposal.

BUGFIX: properly unhook console Ctrl-C handler(s) when running on the .NET 5
        and/or .NET 6 runtimes.  also, codify (previously known?) workaround
        to unhook console Ctrl-C handler when running on the .NET Framework
        2.0.

BUGFIX: stop leaking assembly object reference in [compileViaDotNetCoreCSharp]
        core script library procedure.

BUGFIX: add preliminary support for the .NET 7.0 runtime.

BUGFIX: various fixes to version detection for Windows 10 and/or 11.

BUGFIX: also remove extended and/or Unicode characters from content emitted by
        the default interpreter host in boxed output mode.

BUGFIX: *BREAKING CHANGE* created child interpreters may not create children
        themselves if the parent interpreter has a child limit.

REFACTOR: when an interpreter is in kiosk mode, prevent [object invoke] from
          invoking methods that are well-known to exit the process.

REFACTOR: major refactoring of the TraceOps class.  simplify handling of trace
          format string and index management.  centralize and simplfy handling
          of all named trace format strings.

REFACTOR: *BREAKING CHANGE* rename Strict file search flag to NullOnNotFound.

REFACTOR: *BREAKING CHANGE* introduce whatIfArgc / whatIfArgv global variables,
          which are used (automatically) during core interactive shell argument
          processing for script argument synchronization in what-if mode.

FEATURE: add TraceFormat environment variable, which can be used to override
         message formatting, both directly or indirectly.

FEATURE: make it possible to skip package indexing for specific files and/or
         directories.

FEATURE: add MaybeCreate static method to the StringList and StringPairList
         classes.

FEATURE: add RobustNormalizePath, GetFullPlatformName, RobustNormalizePath,
         GetPackageRelativeFileName, HashFile, and GetCurrentProcessFileName
         methods to the Utility class.

FEATURE: add NoThreadAbort interpreter flag and script data flag.  make sure it
         is used when creating interpreters for use by Harpy and its SDK.

************************* Beta 1.0.8251.52012 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #277240 to #282887.

BUGFIX: remove incorrect and superfluous checking for the -options option from
        the [string ends] and [string starts] sub-commands.

BUGFIX: when counting all existing interpreters, be sure to include those that
        are associated with a token.

BUGFIX: shell callbacks must be refreshed after any calls to initialize script
        library and/or EnableOrDisableSecurity.

BUGFIX: prevent a duplicate newline character from being returned if a channel
        read stops between a carriage-return and its associated line-feed.

BUGFIX: prevent exceptions from being thrown by [subst] if an invoked command
        happens to return a null result.

BUGFIX: correct option handling for the [clock clicks] sub-command.

BUGFIX: stop using the Environment.TickCount property to measure elapsed time
        because it can overflow after only 24.9 days.  this bug impacted the
        [after] and [vwait] commands as well as the [scope eval] sub-command.

BUGFIX: correctly handle end-of-line pairs with the -noblock option for [gets]
        and [read] the end-of-line pair is split between calls.

REFACTOR: heavily refactor procedures in the Eagle.File.Finder script library
          package with a focus on robustness, cross-platform support, and the
          ability to introspect their operation.

REFACTOR: add preliminary support for the .NET Framework 4.8.1.

REFACTOR: reforms to the [object verifyall] sub-command.  remove the optional
          argument and replace it with an optional list of options.

REFACTOR: update the Visual Studio Locator, Inno Setup Unpacker, Inno Setup
          Extractor, and UnRAR tools to their latest release versions.

REFACTOR: *BREAKING CHANGE* add another boolean parameter to the ListFunctions,
          ListCommands, ListOperators, ListProcedures, and ListPlugins methods.

REFACTOR: *BREAKING CHANGE* revise native utility library so that it uses its
          own private heap by default.

REFACTOR: *BREAKING CHANGE* add another boolean option to the AddChannel method
          of the IEntityManager interface.

REFACTOR: *BREAKING CHANGE* rename the ISecurityManager.*Decision properties to
          ISecurityManager.*InitialDecision.

REFACTOR: *BREAKING CHANGE* add the ITrustManager interface, move all trusted
          properties into it, and add the TrustedHashes property.

FEATURE: add the TryLockWithWait method to the ISynchronize interface.

FEATURE: add -readtimeout and -writetimeout options to the [socket] command.

FEATURE: add the -stopOnUnknown command line option to stop core shell argument
         processing when an unknown argument is encountered.

FEATURE: add -contains and -type options to the [file under] sub-command.

FEATURE: add -legacy boolean option to the [file normalize] sub-command.

FEATURE: add [uri time] sub-command to query a remote server for the current
         time via HTTPS.

FEATURE: add support for the literal prefix syntax (i.e. "***=") for regular
         expressions.

FEATURE: add the [info decision] sub-command to return the previous policy
         decision or the corresponding type.

FEATURE: add the [debug keyring] sub-command and interactive #fmkeys command to
         fetch and merge an updated key ring into the local script key ring for
         the interpreter.

FEATURE: add the Isolated and Security environment variables in order to force
         created interpreters to enable plugin isolation and/or script signing
         policies and core script certificates.

FEATURE: add MakeCoreSafe, MakeCoreSecure, and MakeCoreIsolated registry values
         to force initially created shell interpreters to be created as "safe",
         with script signing policies and core script certificates enabled, and
         with plugin isolation enabled, respectively.

FEATURE: add [interp childlimit], [interp namespacelimit], [interp scopelimit]
         sub-commands and their associated IInterpreter properties.

FEATURE: add NamespaceLimit, ScopeLimit, HealthCallback, PreWaitCallback, and
         PostWaitCallback properties to the IInterpreter interface.

FEATURE: add MatchToken method to the IInterpreter interface.

FEATURE: add the base64, component, encoding, plugin, and xml classes to the
         [string is] sub-command.

FEATURE: add the [string classes] sub-commands.

FEATURE: add [scope attach], [scope detach], [scope export], and [scope import]
         sub-commands to allow variables in scopes to interact with namespaces.

FEATURE: add the IfCannotLock creation flag.  if set with the IfNecessary flag,
         interpreter creation should not fail due to the inability to acquire
         the static lock on core library global state.

FEATURE: *BREAKING CHANGE* setup standard channels in "safe" interpreters if
         they are marked for use by the shell.

FEATURE: *BREAKING CHANGE* remove FinallyTimeout and NetworkTimeout properties
         from the IInterpreter interface.  add GetTimeout and SetOrUnsetTimeout
         methods to the IInterpreter interface.

************************* Beta 1.0.8192.54321 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #249015 to #258490.

BUGFIX: when using the ArrayAsValue flag to deal with reference parameters for
        the [object invoke] sub-command, et al, null and/or empty array values
        created automatically via the method overload resolution engine should
        not prevent the resulting opaque object handle name(s) being stored in
        the associated script variables.

BUGFIX: always check for the stub assembly being loaded, even if its usage is
        otherwise disabled.

BUGFIX: add preliminary support for the .NET 6.0 runtime.

BUGFIX: stop leaking command callback in the [getDotNetStandardReferencePath]
        procedure when running on .NET Core.

BUGFIX: make the [isDotNetCore] core script library procedure properly detect
        the .NET 5 and later runtimes.

BUGFIX: do not invoke the interactive command callback if the interpreter is a
        transparent proxy, unless the AllowProxyCallback interpreter flag has
        been set.

BUGFIX: prevent [object dispose] sub-command with the -nodispose option from
        being able to remove a locked object.

BUGFIX: the ScriptClientData class must override all primitive methods from its
        base class (i.e. AnyClientData).

BUGFIX: in the SetupOps class, stop complaints with a null error message.

BUGFIX: make [unknown] mechanism work properly in an isolated AppDomain.

BUGFIX: make unloading of secondary application domains more robust by setting
        a signal just prior to the actual unloading.  this (also) allows code
        in the target AppDomain to detect the pending unload much faster.

BUGFIX: *BREAKING CHANGE* actually, to be useful / correct, the IAnyClientData
        interface must derive from the IClientData interface.

REFACTOR: completely refactor how all paths are handled when building the list
          of candidate paths for possible inclusion in the auto-path, etc.

REFACTOR: further harden the PathOps.GetUniquePath method against failures.

REFACTOR: *BREAKING CHANGE* consolidate the FileCallFrame and StreamCallFrame
          engine flags into ExtraCallFrame.

REFACTOR: *BREAKING CHANGE* use flags instead of boolean parameter(s) for the
          DisableInterpreterCreation method.

REFACTOR: *BREAKING CHANGE* remove the [debug lockcmds], [debug lockprocs], and
          [debug lockvars] sub-commands.  add the [debug readonly] sub-command
          to replace them all.

REFACTOR: *BREAKING CHANGE* make the Parser.SplitVariableName method public.

REFACTOR: *BREAKING CHANGE* replace the UseHostLibrary creation flag with the
          UseLibrary host creation flag.

REFACTOR: *BREAKING CHANGE* attempt to prevent race conditions when emitting a
          message to the collections of trace listeners by using a (new) lock.

FEATURE: add -datetimestyles option everywhere appropriate and DateTimeStyles
         property to the IInterpreter interface.

FEATURE: add [disableStub], [enableStub], [stubOptions], and [stubSource]
         commands to the stub assembly.  these are not normal commands and
         cannot be directly accessed at the script level.

FEATURE: add StubPath environment variable to override the fully qualified path
         to the stub assembly.

FEATURE: add IRule and IRuleSet interfaces and classes.  add -ruleset option to
         the [interp create] sub-command, et al.

FEATURE: add the -ruleset option to the [load] command.

FEATURE: add -repopulate option to the [interp addcommands] sub-command.

FEATURE: add -interpreter option to the [info vars] sub-command.

FEATURE: add the -nocommands and -nofunctions options to the [interp create]
         sub-command.

FEATURE: add Combine static method to the Result class.

FEATURE: add IsRestricted method to the ISecurityManager interface.

FEATURE: add GetResolverEngineFlags method to the IResolveManager interface.

FEATURE: add the MemberNameToEntityName, ExtractWords, CreateNamedEvent,
         OpenNamedEvent, CloseNamedEvent, GetFieldValue, SetFieldValue,
         GetPropertyValue, SetPropertyValue, GetPerformanceMicroseconds,
         DoesEnvironmentVariableExistOnce, GetSocket, IsSocketCleanedUp,
         IEnumerableHashCode, IsTcpListenerActive, CreatePluginData,
         QueryFromDictionary, IEnumerableEquals, HashStringAndOrBytes,
         GetHashCode, GetPerformanceCount, IsSameType, GetFieldInfo,
         GetPropertyInfo, UploadData, FindStream, GetAssemblySourceId, and
         GetAssemblySourceTimeStamp methods to the Utility class.

FEATURE: add ToNameValueCollection method to the StringDictionary class.

FEATURE: add the NoInitializeShell environment variable.

FEATURE: add the [interp isolated] sub-command.

FEATURE: add the [file under] sub-command.

FEATURE: add NullForProxyType to value flags, object flags, and lookup flags.
         when used, an opaque object handle containing a transparent proxy is
         treated as having a null type, i.e. instead of System.Object.

FEATURE: add the Separator property to the IStringList interface, which can be
         used to override the default list element separator (i.e. which is a
         single space character).

FEATURE: add the [uri security] sub-command.  it can be used to introspect the
         state of various security related features of the [uri] command.

FEATURE: make it possible to disable components of the default auto-path list
         via environment variables.

FEATURE: add the -lock and -timeout options to the [scope eval] sub-commands.

FEATURE: add the CreateCount property to the IInterpreter interface.

FEATURE: add TextOrSuffix to the [info engine] sub-command.

FEATURE: add the [scope update] sub-command to (forcibly) refresh the values of
         variables within the specified scope from the current call frame.

FEATURE: add the [scope lock] and [scope unlock] sub-commands to help prevent
         other threads from using the associated call frame.

FEATURE: *BREAKING CHANGE* modify the [debug paths] sub-command to accept flags
         that allow finer grained control over the returned list of paths.

FEATURE: *BREAKING CHANGE* add GetFlags value to the CreateFlags enumeration to
         enable the creation flags and host creation flags to be modified via
         their associated static startup methods.

FEATURE: *BREAKING CHANGE* add GetCommandName method to the IEntityManager
         interface.

FEATURE: *BREAKING CHANGE* add the FormatAppDomainId method to the IInterpreter
         interface.

FEATURE: *BREAKING CHANGE* add the PushActive and PopActive methods to the
         IInterpreterManager interface.

************************* Beta 1.0.7945.33333 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #239657 to #240126.

BUGFIX: stop using global script cancellation state in the ScriptTimeoutThread
        class.

BUGFIX: be more careful about using the active interpreter instance within the
        PrivateShellMainCore method, i.e. it cannot be reliably used if what-if
        mode is enabled.

BUGFIX: add preliminary support for the .NET 5.0 runtime.

BUGFIX: apparently, the CommandCallback class should be marked serializable.

BUGFIX: by default, do not permit an IExecute or ICommand to be added if there
        exists another executable entity by the same name.

BUGFIX: when building up nested commands, be careful with results that are of
        the type ResultList; specifically, they should be added a single value
        to the underlying list of results, not as a range of values.

REFACTOR: cleanup some superfluous trace messages from the IsDisposedOrPending
          method that occur when the interpreter is being disposed.

REFACTOR: improve consistency of end-of-options handling when dealing with them
          prior to the main option processing.

REFACTOR: major cleanup of server socket thread handling, including resource
          cleanup and thread-safety.

REFACTOR: reorganize the Result class handling of field sets, copy semantics,
          and flags handling.

REFACTOR: make consistent use of the [getStringFromObjectHandle] core library
          helper procedure in the core test suite and core script library.

REFACTOR: *BREAKING CHANGE* add CallFrame property to the IValueData interface.

REFACTOR: *BREAKING CHANGE* add optional timeout parameter to methods of the
          IStatusManager interface.

REFACTOR: *BREAKING CHANGE* rename the [object addref], [object removeref], and
          [object refcount] sub-commands to be [object addreference],
          [object removereference], and [object referencecount], respectively.

REFACTOR: *BREAKING CHANGE* remove the SetFlags method from the IArgument and
          IResult interfaces.

REFACTOR: *BREAKING CHANGE* tighten up handling of the PreviousResult property
          of the interpreter.

REFACTOR: *BREAKING CHANGE* by default, do not complain when [debug break] is
          used when the debugger is unavailable or disabled.

REFACTOR: *BREAKING CHANGE* add thread Id parameters to most of IEventManager
          methods that deal with the interpreter event queues.

REFACTOR: *BREAKING CHANGE* change the signatures of the CreateDbConnection,
          FixupDataValue, DataReaderToList, and DataReaderToArray methods.

FEATURE: add HashCodeAsHandle interpreter flag to cause opaque object handle
         names to contain the runtime hash code value.

FEATURE: add Evaluate*WithScopeFrame methods to the Engine class.

FEATURE: add -sdk option to the [info commands] sub-command.  add -interpreter
         option to the [info commands], [info functions], and [info operators]
         sub-commands.

FEATURE: add GetVariableValue, SetVariableValue, and UnsetVariable overloads to
         the IVariableManager interface that lack a VariableFlags parameter.

FEATURE: add TreatAsFramework20 and TreatAsFramework40 environment variables,
         which can be used to attempt to treat the current runtime as though it
         were the .NET Framework 2.0 and/or .NET Framework 4.0, respectively.

FEATURE: add the [package pending] sub-command, which returns non-zero if any
         package (or the specified package) is pending a load operation.

FEATURE: add the -options option to the [regexp] and [regsub] commands.

FEATURE: add the -complain option to the [debug break] sub-command.

FEATURE: add the -thread option to the [after] script scheduling sub-commands,
         the [interp service] sub-command, and the [vwait] command.

FEATURE: add the DisposeOrComplain, GetTraceListenerType, GetDefaultAppDomain,
         MaybeChangeEnvironmentVariable, GetAndUnsetEnvironmentVariable,
         ChangeEnvironmentVariable, StartupShellMain, StartupInteractiveLoop,
         ProcessTraceClientData, GetCurrentAppDomainId, DisableStubAssembly,
         IsInterpreterCreationDisabled, SetWebSecurityProtocol,
         DownloadAndExtractZipFile, and EnableStubAssembly methods to the
         Utility class.

FEATURE: add the -noresult option to the [debug trace] sub-command.

FEATURE: add experimental HasCallFrameFlags method to the IResolveManager
         interface.

FEATURE: *BREAKING CHANGE* remove the EngineClientData class as it was not used
         anywhere.

FEATURE: *BREAKING CHANGE* add the experimental AnyClientData class.

FEATURE: *BREAKING CHANGE* change how the TraceListener integration is done and
         add the -native option to the [debug trace] sub-command.

FEATURE: *BREAKING CHANGE* add ResetCancel method and IEngineContext-enabled
         overloads of the IsCanceled / CancelAnyEvaluate / ResetCancel methods
         to the IEngineManager interface.

************************* Beta 1.0.7900.33333 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #239262 to #239263.

BUGFIX: when using the -clone option to [scope create], deeply copy variables
        into the new scope frame to avoid changing any existing variables that
        happen to reside in a namespace.  also, actually set the frame for the
        cloned variables to the (new) scope, not null.

BUGFIX: fix the [vwaitLocked] core library script procedure and its associated
        IVariable locking primitives to prevent it from raising script errors
        when operating under a heavy multithreaded load.  also, disable usage
        of the interpreter readiness timeout while waiting for the variable to
        be locked.

BUGFIX: stop prompting for the automatic update to run whenever the external
        updater executable is not actually available.

BUGFIX: unless running on the .NET Framework 2.0, do not make use of the native
        CLR function StrongNameSignatureVerificationEx; use the ICLRStrongName
        interface when running on the .NET Framework 4.x or PEReader based code
        when running on .NET Core or the Mono.Security based code when running
        on Mono.

REFACTOR: tighten up IVariable instance locking semantics for variables that
          become undefined.

REFACTOR: cleanup IVariable instance flag handling in the EntityOps class.

REFACTOR: *BREAKING CHANGE* cleanup how the trace format ands its associated
          flags get initialized by the TraceOps class.

REFACTOR: *BREAKING CHANGE* change signature of the Utility.Wait method.

REFACTOR: *BREAKING CHANGE* add new method overload for IOption.IsPresent.

FEATURE: add the -useobject option to both the [read] and [puts] commands; if
         present, it will cause the input or output strings to be interpreted
         as opaque object handles.

FEATURE: add GetAssemblyLocation, GetPathType, IsFileStrongNameVerified, and
         IsFileTrusted methods to the Utility class.

FEATURE: add the -notrace option to the [unset] command.  this is a somewhat
         dangerous flag and is intended to be used only when troubleshooting.

FEATURE: add the -priorities, -resetsystem, -resetlisteners, -forceenabled,
         -statetypes, -logfilename, -enabledcategories, -disabledcategories,
         -penaltycategories, and -bonuscategories options to allow for better
         control over the state of the tracing subsystem.

FEATURE: *BREAKING CHANGE* change boolean options of [debug trace] sub-command
         to require a value.

FEATURE: *BREAKING CHANGE* make the message argument to the [debug trace]
         sub-command optional.  when not specified, the current status of
         the tracing subsystem is returned.

************************* Beta 1.0.7897.33333 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #220645 to #238401.

BUGFIX: verify the required [namespace] commands are available prior to trying
        to enable or disable namespaces for an interpreter.

BUGFIX: be sure to remove conflicting commands when the -force option is used
        with the [namespace import] sub-command.

BUGFIX: be sure to remove namespace imports when the [rename] command is used.

BUGFIX: the MaybeTrimOrClearCached* methods must honor the cache locking flags
        when calling into the TrimExcess method.

BUGFIX: when reading interactive input, treat failing to read a line -OR- read
        of a null line as end-of-file when input has been redirected.  primary
        test case for this is the Docker image.

BUGFIX: support non-defauilt build types from the [checkForUpdate] core script
        library procedure.

BUGFIX: if [scope create] sub-command somehow fails when processing the -args
        option, be sure that any created variables are cleaned up.

BUGFIX: *BREAKING CHANGE* make errorCode and errorInfo global variable values
        per-thread.

BUGFIX: *BREAKING CHANGE* the core marshaller should support calling a method
        with an array output parameter using an opaque object handle pointing
        to a System.Array of the appropriate element type.

REFACTOR: add alternate mode for the [object resolve] sub-command that searches
          the AppDomain loaded assemblies and treats the name specified as the
          pattern to match against.

REFACTOR: add plugin name to the result of the [info identifier] sub-command.

REFACTOR: *BREAKING CHANGE* make all script cancellation state per-thread by
          default, adding new options and flags where appropriate to maintain
          the ability perform global script cancellation.

REFACTOR: *BREAKING CHANGE* add another boolean parameter to SetDisposalEnabled
          method and change its return type.

REFACTOR: *BREAKING CHANGE* when using the [uri ping] sub-command, a valid URI
          will be treated differently than a simple host name or IP address.

REFACTOR: *BREAKING CHANGE* add automatic detection of base64 strings to the
          Utility.GetBytesFromString method.

REFACTOR: *BREAKING CHANGE* improve error handling of Encoding valued options.

REFACTOR: *BREAKING CHANGE* remove all custom plugin flags and add experimental
          OverwritePolicies, OverwriteProcedures, and OverwriteCommands plugin
          flags.  this helps to fix some thorny integration issues with plugin
          assemblies that host multiple plugins containing commands, policies,
          or procedures.

FEATURE: add the experimental NoParameterCounts marshal flag to forcibly skip
         all formal parameter count enforcement.

FEATURE: add the [namespace descendants] sub-command.

FEATURE: add the -locked option to the [vwait] command, which can be used to
         evaluate a script while preventing other threads from accessing the
         specified variable.

FEATURE: add the -nocore option to the [info loaded] sub-command.

FEATURE: add the [string ends] and [string starts] sub-commands.

FEATURE: add FlattenIntoParamArray marshal flag to force arrays to be expanded
         into the final list of parameters used for a ParamArray parameter in
         the call to associated method.

FEATURE: add the ZeroCounts cache flag.  when set, the counts for a cache are
         zeroed during a reset operation.

FEATURE: add the HighPriority interpreter state flag and make use of it when
         initializing the caches.

FEATURE: add the [uri offline] sub-command to query or modify the offline mode
         for the web subsystem.

FEATURE: add NetworkTimeout property to the IInterpreter interface.

FEATURE: add the -timeout option to both the [uri download] and [uri upload]
         sub-commands.

FEATURE: make the optional argument to the [update] command into a flags based
         argument.

FEATURE: add special handling of "knownBug" test constraints in the test suite
         infrastructure.

FEATURE: add the ResultStack environment variable to force Result objects to
         capture managed call stack information upon their creation.

FEATURE: add the IsSdk method to the ISecurityManager interface.

FEATURE: add [listExampleScripts] core library procedure to allow a list of all
         available example scripts to be fetched.

FEATURE: add NoTraceAutoPath script library initialization flag.  this is used
         to avoid evaluating package index scripts in interpreters lacking the
         commands typically found in package index scripts, e.g. interpreters
         for use with the security SDK.

FEATURE: add unsupported -sdk option to the [interp create] sub-command.  it is
         currently for internal testing use only.  hence, it is processed only
         for build configurations with DEBUG enabled.

FEATURE: enhance the [interp issdk] sub-command to accept an optional SdkType
         argument.

FEATURE: add DisableInterpreterCreation, GetCurrentProcessId, GetCurrentPath,
         RemoveBlanksAndComments, GetUniqueElements, SaveEnvironmentVariables,
         VerifyAssemblyFromFile, RestoreEnvironmentVariables, WriteWithoutFail,
         and SetEnvironmentVariables methods to the Utility class.

FEATURE: *BREAKING CHANGE* add -global and -nolocal options to [interp cancel]
         and [interp resetcancel] sub-commands.

FEATURE: *BREAKING CHANGE* enhance WatchdogControl method with health monitor
         support.

FEATURE: *BREAKING CHANGE* add the [file cleanup] sub-command and its support
         subsystem.

FEATURE: *BREAKING CHANGE* add Status method to the IPlugin interface and use
         it to enhance the results of the [version] command.  add an optional
         argument to the [version] command.

************************* Beta 1.0.7790.43198 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #205858 to #218771.

BUGFIX: make sure that [info engine], [info patchlevel], et al, still work when
        the interpreter does not have the needed platform variables.

BUGFIX: consistently use locking in the [interp] command and use the correct
        interpreters for [interp service] and [interp unset] sub-commands.

BUGFIX: correct broken volume-relative path detection for the [file pathtype]
        sub-command.

BUGFIX: *PENDING* do not discard relative path information when searching for
        script files on the file system via the default hosts.

BUGFIX: stop popping too many arguments after processing the -recreate command
        line option.

BUGFIX: cleanup the cached "safe" interpreter used by the settings loader when
        its AppDomain is unloaded.

BUGFIX: when copying policies and traces from the PopulateInterpreterSettings
        method, always skip transparent proxies.

BUGFIX: when processing flag Enum values, trim each item prior to checking its
        operator and/or name.  this is necessary in some obscure corner-cases.

BUGFIX: prevent the -arguments command line option from causing the interactive
        shell to exit prematurely.  apparently, this has been broken since May
        of 2016.

BUGFIX: make index handling semantics of the [lget] and [lset] commands more
        compatible with native Tcl.

BUGFIX: upon returning from an interactive loop entered via the [debug break]
        sub-command, re-check the readiness state of the interpreter, in case
        the interactive user invalidated it somehow.

BUGFIX: robustify the null argument string handling in the [file attributes],
        [file rootname], [file tail], and [file type] sub-commands.

BUGFIX: enhance compliance with native Tcl by allowing radix prefixes for the
        double, integer, wideinteger, byte, and decimal classes to [string is].
        also, for the integer and wideinteger classes, permit unsigned values
        that occupy the full width of the class.

BUGFIX: harden the [glob] command against internal errors due to invalid paths
        and properly handle the pattern syntax "X:*" on Windows.

BUGFIX: when parsing flags enumeration strings, having an isolated operator is
        allowed and should be processed correctly.

BUGFIX: make sure that the AssemblyOps.GetResourceStream method returns a valid
        error message of some kind when the returned stream will be null.

BUGFIX: in the test suite epilogue, process pending events for a while in order
        to avoid closed WinForms being left on the screen when running on Mono.

BUGFIX: have the built-in console host honor the [host close] detection in the
        IsInputRedirected, IsOutputRedirected, and IsErrorRedirected methods.

BUGFIX: fix return semantics for the SetupTitle method.  when the SaveTitle and
        SetTitle method calls succeed, the result should be true, not false.

BUGFIX: mark the shell executable as "dpiAware" to improve the WinForms clarity
        on Windows 10, et al.

BUGFIX: fix potential deadlocks related to the CopyChildInterpreters method by
        changing it into the TryCopyChildInterpreters method.

BUGFIX: provide more precise error messages when an InterpreterHelper fails to
        create its Interpreter.

BUGFIX: robustify unloading of created AppDomains and add tracing.

BUGFIX: when attempting to read a script file, do not search alternate (file)
        names if the original file name was fully qualified.

BUGFIX: when attempting to read an XML script file, do not search alternate
        (file) names when schema validation fails.

BUGFIX: fix typo in interpreter flags handling within the [debug setup]
        sub-command.

BUGFIX: fully implement the IScriptThread.UseActiveStack property.

BUGFIX: the IScriptThread interface was supposed to include the UsePool and
        EventVariableFlags properties.

BUGFIX: when using the ScriptThread.Attach static methods, do not purge the
        global call frame by default.

BUGFIX: for the [object create] sub-command, disable implicit use of private
        static constructors against primitive and value types.  add an option
        named -nomutatebindingflags to override this behavior.

BUGFIX: prevent native list splitting code from being used when the specified
        length is zero as it can only handle cases where the entire string is
        being split into list elements.

BUGFIX: stop assuming that the AltDirectorySeparatorChar value will be the
        backslash character on non-Windows platforms.

BUGFIX: remove special case treatment of Mono for the [info nameofexecutable]
        sub-command.  furthermore, always attempt to preserve the actual entry
        assembly name in created application domains.

BUGFIX: properly process the -blocking option to the [fconfigure] command.

BUGFIX: honor the UpdateCheck plugin flag when it has been set via the [load]
        command or within the interpreter.

BUGFIX: when [test2] is using process isolation, always emit the correct child
        process exit code.

BUGFIX: the [array set] sub-command should honor the ArrayElementLimit value.

BUGFIX: improve compatibility with the [lreplace] command and its handling of
        empty lists.

BUGFIX: fix several issues with the plugin update subsystem.

BUGFIX: minor fixes to the [compileCSharp] subsystem related to command line
        argument handling and logging.

BUGFIX: fix handling of undefined variables by the [dumpState] script library
        procedure.

BUGFIX: prevent the DisposeTclThreads and FilterTclBridges methods from raising
        ObjectDisposedException when they use the public Match method; instead,
        use the new InternalMatch method.

BUGFIX: in "safe" interpreters, the [info library] sub-command should return a
        scrubbed file name.

BUGFIX: in "safe" interpreters, forbid a directory from being in the auto-path
        if it exists outside of the base directory.

BUGFIX: forbid a directory from being in the auto-path if its files cannot be
        enumerated.

BUGFIX: fix syntax help semantics for all sub-commands with children, e.g. the
        [host screen] sub-command.

BUGFIX: prevent package index file search from throwing exceptions due to lack
        of file system permissions.

BUGFIX: fix day one bug in the SocketClientData class: it was never setting the
        "exclusive" field based on its associated constructor parameter.

BUGFIX: access all auxiliary thread fields associated with an interpreter only
        from within its own instance methods in order to prevent any isolated
        interpreters from raising remoting exceptions.

BUGFIX: in the test prologue, always verify that the in-memory test log start
        sentry matches the one found in the existing log file, if applicable.

BUGFIX: take care to preserve the ordering of object namespaces managed via the
        [object namespaces] sub-command.

BUGFIX: use an ever increasing sequence number for the GetUniqueKey method of
        the StringDictionary class.

BUGFIX: *PERF* by default, do not allow isolated plugins to receive any event
        notifications.  also, stop unnecessary casts to the INotify interface.

BUGFIX: *PERF* when an Argument object needs to be converted to a StringList,
        make sure to use any cached StringList or IEnumerable value that may
        already be available.

BUGFIX: *MAJOR* fix a couple (potential?) race conditions within implementation
        of the [exec] command.

BUGFIX: *SECURITY* change -filename option to the [hash keyed], [hash mac], and
        [hash normal] sub-commands to be flagged as "unsafe".

BUGFIX: *SECURITY* if [test2] ends up being used with process isolation from a
        "safe" interpreter, make sure the command line for the launched child
        process includes the -safe command line option.

BUGFIX: *SECURITY* do not allow "safe" interpreters to use underlying native
        floating point formatting implementation provided by the MSVC runtime.

BUGFIX: *SECURITY* use child interpreter for the [interp readorgetscriptfile]
        sub-command.

BUGFIX: *BREAKING CHANGE* modify the GetVariableValues, SetVariableValues, and
        UnsetVariables methods of the IVariableManager interface to accept the
        lists of variable values as objects, not strings.

BUGFIX: *BREAKING CHANGE* since [test2] is available in "safe" interpreters,
        heavily restrict its set of allowed options when it is used in "safe"
        interpreter contexts.

REFACTOR: optimize interpreter creation by using "well-known" lists of built-in
          commands, functions, and operators, pre-generated beforehand.

REFACTOR: use the new System method flag to mark all built-in policy and trace
          callback methods.

REFACTOR: add internal DoesIExecuteExistViaResolvers method, use it to simplify
          various checks in the core library.

REFACTOR: make [sourceWithInfo] command available without having to initialize
          the core script library.

REFACTOR: modularize the PrivateInitializeShell and PrivateInitialize methods.

REFACTOR: allow default noCase settings for the [array] sub-commands and the
          NetworkVariable class to be set for testing purposes.

REFACTOR: allow the ObjectName attribute to be applied to delegates.

REFACTOR: use InternalSyncRoot inside core library command implementations.

REFACTOR: enhance EventOps.Wait method to accept an optional EventWaitHandle to
          periodically check.  also, add ability to ignore script cancellation
          flags.

REFACTOR: show question mark icons for MessageBox calls that asks questions.

REFACTOR: make it possible to skip the re-throwing exceptions thrown from the
          Application.DoEvents method.

REFACTOR: improve handling of Exception values by the Result class.

REFACTOR: cleanup integration with the GetStartupLogFileName method.

REFACTOR: keep track of the total number of active interactive loops for all
          threads.

REFACTOR: add number of seconds since midnight to the default host title.

REFACTOR: make sure all Encoding lookups are handled by the StringOps class.

REFACTOR: move all list splitting / joining code into its own class, ParserOps,
          including the native utility integration code.

REFACTOR: adjust priority of several trace messages to prevent them from being
          seen in servers applications running in alternate AppDomains.

REFACTOR: remove the Sample project from the list of project dependencies that
          are present in the solution files.

REFACTOR: add alternate constructor to the AssemblyDateTimeAttribute class.

REFACTOR: recognize the November 2019 and May 2020 updates to Windows 10.

REFACTOR: add DebugOps.SafeUnset(Global?)Complaint methods for test use.

REFACTOR: revise the error handling semantics for the mutex subsystem of the
          SetupOps class.

REFACTOR: enhance handling of -errorsvar option to the [tcl find] sub-command,
          et al.

REFACTOR: move default object namespace handling from the Value class to the
          ObjectOps class.

REFACTOR: enhance [interp watchdog] with much better interactive support when
          compiled without WinForms support and be more careful about its use
          of the interactive flag.

REFACTOR: mark all IComparer, IComparable, and IEquatable members of AnyPair,
          AnyTriplet, and related classes as virtual.

REFACTOR: be more careful about management of the timeout, finally timeout, and
          (test) garbage collection auxiliary threads used by the interpreter.

REFACTOR: completely rewrite the IScript code responsible for XML processing,
          and move it to its own class, ScriptXmlOps.

REFACTOR: add dbNullValue and errorValue parameters to methods FixupDataValue,
          GetDataReaderFieldValues, DataReaderToList, and DataReaderToArray.

REFACTOR: stop requiring a valid interpreter for the CreateOtherDbConnection
          and DataReaderToList methods.

REFACTOR: for PrivateSetupTraceListeners, accept and emit a context string to
          show why it is setting up the trace listeners.

REFACTOR: add the NoPreviousResult engine flag to disable all previous result
          handling in the script engine.

REFACTOR: stop requiring a valid interpreter for the GetAnyTypeViaCallback,
          GetNestedMember, and GetNestedObject methods.

REFACTOR: for SetNativeDelegates, before failing, attempt to lookup address via
          an ObjectName attribute on the target delegate type.

REFACTOR: revise the locking semantics use by ResetOrClearCaches (ClearCaches)
          to avoid deadlocks via the TryLock pattern.

REFACTOR: stop searching for a host profile file when the NoProfile option has
          been enabled for the interpreter host.

REFACTOR: optimize the operating system detection semantics of the PlatformOps
          class.

REFACTOR: Move the Name property from the IIdentifierBase interface to the new
          IIdentifierName interface.

REFACTOR: *HACK* avoid attempting to change the System.Console foreground and
          background colors if they are already set to the target value.

REFACTOR: *HACK* call the GlobalState.SetupPrimaryThreadIds method from inside
          the Interpreter.ForceStaticInitialize method.  when on non-Windows
          platforms, this may be necessary due to static class initialization
          ordering oddities.

REFACTOR: *BREAKING CHANGE* remove the ExecuteCallbackDictionary class and use
          the new PolicyList class instead.

REFACTOR: *BREAKING CHANGE* rename the IDynamicExecute interface to
          IDynamicExecuteCallback.

REFACTOR: *BREAKING CHANGE* rename engine flags UseAll to UseAllMask, ForPrompt
          to ForPromptMask, and DebuggerExecution to DebuggerExecutionMask.

REFACTOR: *BREAKING CHANGE* start using the terminology of "parent" and "child"
          interpreters, et al.

REFACTOR: *BREAKING CHANGE* move the value contained in eagle_platform(os) to
          tcl_platform(osString).

REFACTOR: *BREAKING CHANGE* make use of the -interpreter option passed to the
          [debug shell] sub-command even when the -asynchronous option is also
          in use.  also, when the -asynchronous option is not in use, fallback
          to the interpreter evaluating the script.

REFACTOR: *BREAKING CHANGE* add the IgnoreCanRetry script flag and make use of
          it when the canRetry engine return values should be ignored from the
          core interpreter hosts.

REFACTOR: *BREAKING CHANGE* remove the DeniedByPolicy engine flag.  also, add
          the IgnoreRootedFileName engine flag.

REFACTOR: *BREAKING CHANGE* rename the -assembly and -system options of the
          [object import] sub-command to -eagle and -clr, respectively.

REFACTOR: *BREAKING CHANGE* add Trace method to the IPolicyContext interface.

REFACTOR: *BREAKING CHANGE* refine help subsystem to favor interactive command
          groups only when the topic is prefixed with the interactive command
          prefix.

REFACTOR: *BREAKING CHANGE* expose the eagle_tests virtual array variable in
          "safe" interpreters.

REFACTOR: *BREAKING CHANGE* add SleepType parameter to sleep related methods of
          the IEventManager interface.

REFACTOR: *BREAKING CHANGE* add SetSleepTime and SetMinimumSleepTime methods to
          the IEventManager interface.

REFACTOR: *BREAKING CHANGE* modify LoadSettingsViaScriptFile method to make the
          flags parameter input/output and add another IClientData parameter.

REFACTOR: *BREAKING CHANGE* add IHaveInterpreter interface as one of the base
          interfaces for the IPolicyContext interface.

REFACTOR: *BREAKING CHANGE* remove the IHaveInterpreter and IHaveClientData
          interfaces from the IRfc2898DataProvider interface.

REFACTOR: *BREAKING CHANGE* rename the TryDispose method to TryDisposeObject
          in the Utility class.

REFACTOR: *BREAKING CHANGE* whenever possible, always use the method overloads
          of the Engine.CreateThread method that accept an interpreter.

REFACTOR: *BREAKING CHANGE* enhance the TryGetStringFromObject method to handle
          the Interpreter class type.

REFACTOR: *BREAKING CHANGE* enhance the ThreadOps.MaybeShutdown method so that
          it nulls out its thread parameter more predictably.

REFACTOR: *BREAKING CHANGE* cleanup save / restore semantics for parser state
          and token classes.

REFACTOR: *BREAKING CHANGE* add ref modifier to the value parameter of the
          IUsageData.AddUsage method.  add CountUsage and ProfileUsage methods
          to the IUsageData interface.

REFACTOR: *BREAKING CHANGE* replace -strict option for [debug break] with the
          -ignoreenabled option.

REFACTOR: add AddExecuteCallbacks and RemoveExecuteCallbacks methods to the
          IEntityManager interface.

REFACTOR: add preliminary support for the .NET Standard 2.1 via .NET Core 3.0.

FEATURE: add RenameHiddenCommand, RenameHiddenIExecute, RenameHiddenProcedure
         methods to the IEntityManager interface.

FEATURE: introduce the notion of token-based interpreter instance management.
         when one of these interpreters is created, it will not be visible via
         the normal lists of interpreters available to third-party code or user
         scripts.  upon creation, such an interpreter will be assigned a unique
         integer token, completely separate from its normal integer identifier,
         and which will be the only supported identifier that can be used in
         order to reacquire a live reference to that particular interpreter.

FEATURE: add the -publickeytoken option to the [load] command to forbid loading
         of the assembly if it does not match the specified public key token.

FEATURE: promote AddPluginArguments and RemovePluginArguments methods to public
         via IPluginManager interface.

FEATURE: add the InitializeFlags and ScriptFlags environment variables.  they
         can be used to set or alter their respective flags used to create the
         interpreter created by the shell.

FEATURE: add IsSecuritySdk and IsLicenseSdk methods to the ISecurityManager
         interface.

FEATURE: add the [interp issecuritysdk] sub-command, which will return non-zero
         if the specified interpreter is only intended for use by the security
         SDK.

FEATURE: add the -flags, -reset, -plugin, -notrusted, and -noverified options
         to the [package scan] sub-command.

FEATURE: add the NoTraceCategories environment variable to inhibit output from
         a specific set of trace categories.

FEATURE: add the IfNecessary and NoDispose interpreter creation flags and the
         IInterpreterManager.SetDisposalEnabled method to permit much greater
         control over the Interpreter lifecycle.

FEATURE: permit an IHost to provide an arbitrary number of package index files,
         including both core library packages.

FEATURE: add the -literal option to the [regsub] command in order to use the
         subSpec argument literally.

FEATURE: add the [interp parent] sub-command to return the parent of the active
         (or specified) interpreter.  an empty string will be returned if there
         is no parent.

FEATURE: add the -child, -parent, and -setcreate command line options to allow
         for more control over interpreter creation and sandboxing.

FEATURE: add the SimpleCallback marshal flag to support using a pre-existing
         instance or static method as the basis for a needed delegate.

FEATURE: add AddSubCommand method to the IEntityManager interface.  it can be
         used to add and/or update an arbitrary sub-command and arrange for a
         specific script command to be run for it.

FEATURE: add AddSubCommands method to the IEntityManager interface.  it can be
         used to add ensembles to the interpreter consisting of the methods of
         specific types or instances.

FEATURE: add TraceTextWriterOwned and DebugTextWriterOwned properties to the
         IDebugManager interface.

FEATURE: add -referencecount option to the [object cleanup] sub-command.  it is
         used to forcibly remove and/or dispose all opaque object handles, even
         those with non-zero reference counts.  any negative value will remove
         and/or dispose all opaque object handles.  a positive value will only
         remove and/or dispose all opaque object handles with a reference count
         that is less than or equal to the value specified.

FEATURE: add RegistryVariable class to enable linking a script variable to the
         specified registry sub-key.

FEATURE: improve script evaluation using an IScript, e.g. support for signed
         scripts, optional call frame management, and [info script] naming.

FEATURE: add the -dbnullvalue and -errorvalue options to the [sql execute]
         sub-command.

FEATURE: add the -kiosk command line option, which will cause the interactive
         loop to be reentered upon it being exited.

FEATURE: add GetArguments method to the IArgumentManager interface.

FEATURE: add the [control require] sub-command to the Eagle Native Package for
         Tcl (Garuda).

FEATURE: add the -verifyCoreAssembly flag to the [test2] command.  by default,
         use the associated plugin flag when creating new application domains
         for use by isolated plugins.

FEATURE: add the InterpreterSettings.CreateDefault static factory method.

FEATURE: add the NoClose environment variable.  this can be used to prevent the
         user from closing the console window.

FEATURE: add ExitCodeNoThrow property to the IInterpreter interface.

FEATURE: add the -interpreter option to the [debug emergency] sub-command.

FEATURE: add the -nocomplain and -noerror options to [debug break] sub-command.
         the -nocomplain option can be used to prevent all errors caused by the
         debugger being unavailable / disabled, including support being omitted
         at compile-time.  the -noerror option can be used to force the results
         of the sub-command to be success, even if the interactive loop returns
         an error.

FEATURE: add experimental implementation of the [array default] sub-command
         based on the semantics in TIP #508 for native Tcl 8.7.

FEATURE: add [fpclassify] command and its associated math functions from TIP
         #521.

FEATURE: add -not and -any boolean options to the [string is] sub-command.

FEATURE: add -availabletimeout and -nobuffer options to the [socket] command.

FEATURE: add -noblock option to the [gets] and [read] commands.

FEATURE: add [string is none] sub-command to check if a string can be resolved
         to a value of negative one (-1).

FEATURE: add nop() math function, primarily for use in testing and debugging.

FEATURE: add the NewProcedureCallback property to the IInterpreter interface.

FEATURE: add the [file validname] sub-command and its associated support code.

FEATURE: add the [string is directory], [string is file], [string is path], and
         [string is reserved] sub-commands.

FEATURE: add the -aliasname option to the [object alias] sub-command.

FEATURE: add the NoIsolatedPlugins trust and script data flags as well as the
         NoIsolated plugin flag in order to prevent plugins from being loaded
         into isolated application domains when evaluating user scripts and/or
         loading settings from a script file.  also, add the -noisolatedplugins
         option to the [debug secureeval] sub-command.

FEATURE: add the NoCloseConsole interpreter host creation flag.

FEATURE: add the GetNullableBoolean2 method to the Value class.

FEATURE: add the Pack, Pack<T>, TryUnpack<T>, TryExtract<T>, and TryReplace<T>
         methods to the ClientData class.

FEATURE: add the -eval, -regexp, -subspec, -regexpoptions, and -multipass
         options to the [string map] sub-command.

FEATURE: add the -culture option to the [string tolower], [string toupper], and
         [string totitle] sub-commands.

FEATURE: make it possible to skip dealing with native Tcl interpreter when the
         InternalCancelAnyEvaluate method is called.  also, move the native Tcl
         script cancellation support into its own method and harden it against
         potential deadlocks.

FEATURE: add the IKeyEventManager interface and its associated keyboard event
         management subsystem.

FEATURE: add the IStatusManager interface and its associated user-interface.

FEATURE: add GetExtra method to the IScript interface.

FEATURE: add RetryXml and RelaxedXml properties to the IInterpreter interface.

FEATURE: modify how the key default flags values are obtained; use new static
         private class and permit all defaults to be changed via reflection.

FEATURE: promote PluginFlags to a fully supported creation-time flags value
         and pass it through the various interpreter creation points.

FEATURE: add NoAbort property to the IScriptThread interface.

FEATURE: add experimental [interp addcommands] sub-command to restore one or
         more hidden commands within a "safe" interpreter.

FEATURE: add [interp exposed] sub-command to return list of exposed commands in
         the specified interpreter.

FEATURE: add -nohidden option to the [interp create] sub-command.  when used in
         combination with the -safe option, it will cause all "unsafe" commands
         to be missing from the created interpreter instead of being hidden.

FEATURE: enhance WatchdogControl method with more operations and finer grained
         flags.

FEATURE: add IRfc2898Data interface to contain property setters related to the
         IRfc2898DataProvider interface.

FEATURE: expose the GetActivePair static method from the Interpreter class.

FEATURE: add the TracePriorityLimits environment variable.  this can be used to
         enable limits on trace output based on priority.

FEATURE: add the ability to suppress duplicated trace messages and limit output
         based on category.

FEATURE: add -useBasePath and -useEntryAssembly options to the [test2] command.

FEATURE: add [downloadExampleScript] core library procedure to make it easy to
         download and evaluate example scripts.

FEATURE: add -nocaptureinput, -nocaptureoutput, -stdinobject, -startcallback,
         -stdoutcallback, -stderrcallback, and -overridecapture options to the
         [exec] command.

FEATURE: add #ihelp interactive command to display help for commands and their
         associated sub-commands.

FEATURE: add the XDG_KEYRING_HOME and XDG_KEYRING_DIRS environment variable
         constants for use by Harpy.

FEATURE: add the XDG_CLOUD_HOME and XDG_CLOUD_DIRS environment variable
         constants for possible use with the test suite log files.

FEATURE: keep track of the number of successful calls to the FormOps.DoEvents
         method.

FEATURE: add support for command / sub-command options of the type ICallback.

FEATURE: add constants for USERNAME and USERDOMAIN environment variables.

FEATURE: add ReadScriptFile method overloads to the Engine class that support
         returning an opaque ReadScriptClientData instance, for use with the
         new GetReadScriptFileOriginalText method.

FEATURE: add EvaluateTrustedScript method overloads to the IEngineManager
         interface that support supplying the file name that contained the
         script to be evaluated.

FEATURE: add the GetAssemblyTextOrSuffix, GetRandomBytes, MaybeSetBinaryPath,
         GetType, CheckAndMaybeModifyProcessReferenceCount, NullObjectName,
         TranslatePath, MaybeGetErrorMessage, SetupTraceLogFile, GetEncoding,
         SetupTraceListeners, RefreshEntryAssembly, GetObjectDefaultDispose,
         MaybeAdjustTraceLimits, GetObjectDefaultSynchronous, NewCoreProcedure,
         HashString, FixupDataValue, DataReaderToList, TryGetPathSerialNumber,
         DataReaderToArray, GetTempPath, GetTracePriority, SetPolicyTrace,
         TryDisposeObjectOrComplain, IsScriptFileForSettingsPending, and
         TryGetValueOfType, and GetLocalNames methods to the Utility class.

FEATURE: add -trusted option to the [tcl available], [tcl find], [tcl select],
         [tcl load], and [tcl versionrange] sub-commands.

FEATURE: add -addressfamily option to the [socket] command.  also, add support
         for using service names instead of port numbers.

FEATURE: add -time option to the [source] command.

FEATURE: add "/" flag to the [format] command to enable handling double values
         based on their raw internal representations (i.e. wide integer bits).

FEATURE: *BREAKING CHANGE* add boolean whatIf parameter to the PreviewArgument
         and UnknownArgument methods of the IShellCallback interface.

FEATURE: *BREAKING CHANGE* add GetTimeoutCallback and PreWebClientCallback
         properties to the IInterpreter interface.

FEATURE: *BREAKING CHANGE* add the GetUsageData method to the IEntityManager
         interface.

FEATURE: *BREAKING CHANGE* add -eval option to the [tcl available], [tcl find],
         [tcl load], and [tcl select] sub-commands.

FEATURE: *BREAKING CHANGE* prevent the console window from being closed if it
         was freshly opened by the core library.

FEATURE: *BREAKING CHANGE* add runtimeBuild element to the eagle_platform array
         and add an optional argument to the [info runtimeversion] sub-command
         to force it to be returned.

FEATURE: *BREAKING CHANGE* add the [interp callbacklimit] sub-command.  add the
         CallbackLimit property to the IInterpreter interface.

FEATURE: *BREAKING CHANGE* add the [interp eventlimit] sub-command.  add the
         EventLimit property to the IInterpreter interface.  modify the queue
         methods of the IEventManager interface to include an integer limit
         parameter.

FEATURE: *BREAKING CHANGE* add support for updating plugins without increasing
         their patch level (e.g. to update their scripts or auxiliary files).

************************* Beta 1.0.7213.50727 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #188917 to #205080.

BUGFIX: harden call stack handling against the context manager being reset by a
        different thread using the interpreter.

BUGFIX: fix detection of .NET Core 3.0 runtime due to missing System.CoreLib
        static class type.

BUGFIX: when adding a command alias, do not overwrite its command token, which
        is generated first, with its alias token.

BUGFIX: aliases executed by "trusted" scripts should be able to refer to hidden
        commands and/or sub-commands.

BUGFIX: fix renaming of hidden commands when namespaces are enabled.

BUGFIX: correct malformed value of the DefaultShell32FileName constant.

BUGFIX: the ReadScriptFile method must fail if post-script bytes are requested
        by the caller and cannot be obtained.

BUGFIX: prevent an IScriptLocation stack imbalance that could occur if script
        locations were enabled within nested script evaluation.

BUGFIX: the [isNonNullObjectHandle] core script library procedure should not
        return true for existing opaque object handles that have a reference
        to any null object (i.e. when they refer to an opaque object handles
        that are not the special "null" opaque object handle).

BUGFIX: properly delete all temporary files used by [compileCSharp], even when
        running on .NET Core -AND- even if the assembly is generated in memory.

BUGFIX: fix algorithm in MergeArguments method, using a new boolean flag, so it
        can handle opaque object handles with an aliased command name that has
        a namespace prefix (i.e. as the first argument from the second argument
        list cannot be used).

BUGFIX: the SelectMethodIndex method must update the original index used to get
        the method index in order to select the correct list of parameters used
        to eventually call the selected method.

BUGFIX: when using sub-commands that evaluate a script in another interpreter
        (e.g. [interp eval], [debug eval], [debug subst], [debug secureeval],
        etc), merge the error backtrace information in the event of an error.

BUGFIX: fix error messages for the hash algorithm creation sub-commands of the
        [hash] command.

BUGFIX: fix lock statement in the RuntimeOps.HashScriptFile method.

BUGFIX: make sure the script to [catch] is wrapped using a nested execution
        context; otherwise, interpreter readiness checks may be incorrectly
        skipped if the script debugger was used within the current outermost
        script evaluation.

BUGFIX: the [test2] command should only make use a nested execution context if
        the test interpreter is the same as the current interpreter.

BUGFIX: fix typo in the RuntimeOps.GetLeastMinSize method.

BUGFIX: the [format] command should honor the execution result limit.

BUGFIX: due to the NoDefaultBinder flag being included in the default creation
        flags for interpreters, fallback to the default CLR binder when looking
        up the IHost constructor in HostOps.CopyAndWrap.

BUGFIX: when dealing with threads with very small stack sizes (e.g. 256K), use
        half that size as the native stack margin.

BUGFIX: script errors should not be generated when using the -nocomplain option
        to [unset] on scalar variables via array element references.

BUGFIX: make sure that all created EngineThread object instances initialize the
        native stack checking subsystem if there is no associated interpreter.

BUGFIX: since a console window is process-wide, saved icon information should
        not be per-instance.

BUGFIX: if the [host close] and/or [host open] sub-commands are used, make sure
        the host setup reference count is adjusted accordingly.

BUGFIX: make [interp create] succeed with the -novariables option even when the
        security plugins need to be loaded (i.e. without the auto-path variable
        being available).

BUGFIX: prevent the NewHostCallback static property from interfering with the
        CreateInterpreterForSettings method.

BUGFIX: fix [canGetManagedType] so it uses the renamed Value.GetAnyType method.

BUGFIX: correct obscure enumeration to integer conversions for some signed type
        codes when running on Mono.

BUGFIX: stop possible infinite loop when the [string map] sub-command is used
        with a mapping containing an original string that is empty.

BUGFIX: when disposing an interpreter, possibly dispose of the cached one used
        by LoadSettingsViaFile as well.  this prevents spurious exceptions from
        being thrown by GC threads.

BUGFIX: fix errant use of the Object.Equals method via SharedStringOps in a few
        places.

BUGFIX: in the NetworkVariable class, strip the final trailing line ending from
        web responses.

BUGFIX: avoid filtering on attributes of undefined variables in the GetVariable
        method.

BUGFIX: reform the semantics used when refreshing the interactive host from the
        interactive loop.  this fixes a remoting error caused by save / restore
        semantics of the interactive loop thread.  it also adds an experimental
        method for plugins to use an alternative interactive host for secondary
        interactive loops without creating another interpreter.

BUGFIX: prevent [debug token] sub-command from causing NotSupportedException.

REFACTOR: add SecurityLevels property to the IEngineContext interface, used by
          the security plugin loader to indicate that evaluation of a security
          script is pending.

REFACTOR: keep track of the system thread Id of each EngineThread while it is
          running.

REFACTOR: cleanup ContextManager class and move its static methods to the new
          ContextOps class.

REFACTOR: heavily cleanup and refactor the Channel and ChannelStream classes,
          including their callers.

REFACTOR: add support for Visual Studio 2019 and the .NET Framework 4.8.

REFACTOR: keep track of the total number of instances of an interpreter on all
          active interpreter stacks.

REFACTOR: start using a static factory method to create end-of-options IOption
          objects.

REFACTOR: use try/finally semantics in all entity addition methods that involve
          creating a wrapper object.

REFACTOR: miscellaneous changes in the CommandCallback class, mostly related to
          interpreter thread context cleanup.

REFACTOR: miscellaneous cleanup in the ConversionOps class.

REFACTOR: miscellaneous cleanup in the TraceOps class, mostly related to state
          management, handling of trace flags, and available trace formats.

REFACTOR: use TryLock pattern in the CancelEvaluate, IsCanceled, IsDeleted,
          IsHalted, HaltEvaluate, ResetCancel, ResetErrorInformation, and
          ResetHalt methods of the Engine class.  also, use TryLock pattern in
          the FireInterruptCallback method of the Interpreter class.

REFACTOR: make sure the Attach thread flag is consistently set when creating a
          ScriptThread object via one of the Attach static factory methods.

REFACTOR: revise when MaybeDisposeThread is called on an interpreter.  also, in
          the Engine class, prevent it from being called more than once when an
          asynchronous script is being evaluated using an EngineThread.

REFACTOR: in the Eagle Package for Tcl (Garuda), avoid rereading configuration
          information for the package when it is already available.

REFACTOR: move (script?) file, profile, prompt, title, and color functionality
          out of the Core host.

REFACTOR: robustify and modularize handling of "dead" native Tcl entities.

REFACTOR: make sure that a diagnostic message is emitted when failing to enable
          or disable the security packages.

REFACTOR: make [file readable] and [file writable] work better on non-Windows
          operating systems and when running on Mono -OR- .NET Core.

REFACTOR: make IInteractiveHost.ReadLine, IReadHost.ReadKey, and IReadHost.Read
          methods have transactional semantics.  handle the IHost.Echo property
          consistently.

REFACTOR: modify how the Value class uses NumberStyles, making it possible to
          modify them at runtime.  this change was pursuant to issues with the
          built-in .NET Framework handling of the AllowThousands flag (i.e. it
          allows too many separators and in the wrong places).

REFACTOR: add version-specific test constraint handling for .NET Core to the
          test suite.

REFACTOR: major cleanup and modularization of the EnumOps class.

REFACTOR: streamline TraceOps.DebugTrace handling of interpreter parameters and
          use of private method overloads.

REFACTOR: have the built-in File host implement the ISetInterpreter interface.

REFACTOR: use the TryLock pattern for most use of the variableEvent field that
          occur outside of the low-level variable management methods.

REFACTOR: use the TryLock pattern for all use of the IEventManager instance in
          the Interpreter class, with the sole exception of the introspection
          support methods.

REFACTOR: simplify and cleanup the PathOps.TildeSubstitution method.

REFACTOR: robustify the [isObjectHandle] core script library procedure by using
          the [object exists] sub-command, if available.

REFACTOR: cleanup implementation of the [exit] command.

REFACTOR: add experimental support for customizing callback used by the [vwait]
          command to sleep and/or wait -AND- for skipping various stages of its
          event processing pipeline.

REFACTOR: add experimental support for evaluating scripts with redirected input
          output, and error channels.

REFACTOR: revise implementations of IState.Initialized property so they can
          better tolerate multiple interpreters.

REFACTOR: *BREAKING CHANGE* make the [compileCSharp] script library procedure
          capable of using .NET Core 3.0 SDK.  add [csharpLog] script library
          helper procedure to assist in troubleshooting.

REFACTOR: *BREAKING CHANGE* remove Fossil binary and sources from the source
          code repository.  if required, they should now be obtained upstream,
          directly from the Fossil project.

REFACTOR: *BREAKING CHANGE* add boolean nullEncoding parameter to AddChannel
          method of the EntityManager interface.

REFACTOR: *BREAKING CHANGE* reorganize values in the CreateFlags enumeration.

REFACTOR: *BREAKING CHANGE* add a CultureInfo parameter to the GetStream method
          of the IPlugin interface.

REFACTOR: *BREAKING CHANGE* rename the GetScript method of the IFileSystemHost
          interface to GetData and add a DataFlags parameter.

REFACTOR: *BREAKING CHANGE* the [clock] command is now marked as "unsafe" and a
          subset of its sub-commands are unavailable in "safe" interpreters in
          an attempt to prevent timing side-channel attacks (e.g. Spectre).

REFACTOR: *BREAKING CHANGE* ideally, one call to the [puts] command should not
          result in more than one call to the underlying write method, even if
          a new line is required.

REFACTOR: *BREAKING CHANGE* add boolean useActiveStack parameter to the
          Engine.CreateThread method.

REFACTOR: *BREAKING CHANGE* handle the Enum type specially in the Number class.

REFACTOR: *BREAKING CHANGE* add input/output method index list index parameter
          to the IScriptBinder.SelectMethodIndex method.

REFACTOR: *BREAKING CHANGE* rename the IShellCallback.ProcessArgument method to
          UnknownArgument.  also, add a IShellCallback.PreviewArgument method.

REFACTOR: *BREAKING CHANGE* rename the IShellManager.ArgumentCallback property
          and its associated delegate type to UnknownArgumentCallback.

REFACTOR: *BREAKING CHANGE* add boolean parameter to all CallStack constructors
          that lacked it.

REFACTOR: *BREAKING CHANGE* modify the ExtractPolicyContextAndTextAndBytes
          method by adding encoding and hash value parameters.

REFACTOR: *BREAKING CHANGE* modify the ExtractPolicyContextAndScript method by
          adding an encoding parameter.

REFACTOR: *BREAKING CHANGE* heavily revise how the home directory for the user
          is determined, using the XDG Base Directory Specification as a guide.

REFACTOR: *BREAKING CHANGE* remove all command line argument processing that
          involves script evaluation when the ENTERPRISE_LOCKDOWN compile-time
          option is enabled.

REFACTOR: *BREAKING CHANGE* cleanup Engine.IsDeleted method and changes its
          method signature to better match its peers (e.g. CancelFlags).

REFACTOR: *BREAKING CHANGE* rename several values of the ScriptDataFlags enum.

REFACTOR: *BREAKING CHANGE* rename the NoUtility environment variable and its
          associated flags to NoNativeUtility.

REFACTOR: *BREAKING CHANGE* by default, disallow "safe" interpreters from using
          any interactive command not expliclty marked as "safe".  simplify and
          cleanup handling of interactive commands.

REFACTOR: *BREAKING CHANGE* by default, enable checking for an update to the
          core library when the interactive shell is started even when there
          is no formal product installation.

REFACTOR: *BREAKING CHANGE* rename the NoTracePlugin interpreter creation flag
          to NoMonitorPlugin.  rename the -trace option for [interp create] to
          -monitor.  rename the interactive #restt command to #restm.  rename
          IPluginManager.RestoreTracePlugin method to RestoreMonitorPlugin.

REFACTOR: *BREAKING CHANGE* rename [getPassPercentage] and [getSkipPercentage]
          test procedures to [getPassedPercentage] and [getSkippedPercentage],
          respectively.

FEATURE: add [file temppath] sub-command to return the (currently configured)
         directory where temporary files should be stored.

FEATURE: add the [info syntax] sub-command to return the complete list of all
         available commands and sub-commands -OR- the syntax of an arbitrary
         command or sub-command.

FEATURE: add help and syntax values to the [info identifier] sub-command, if
         available.

FEATURE: add AlwaysGetVariable interpreter flag.  when set, it will force all
         lookups for nonexistent variables to succeed; however, they will not
         actually be added to the target call frame.  this flag can be useful
         when evaluating a script for diagnostic purposes where variables may
         be missing.

FEATURE: add the [interp rename] sub-command to rename commands within a child
         interpreter.

FEATURE: add -hiddenonly option to the [rename] command and the [interp rename]
         sub-command.

FEATURE: move engine tracing functionality to the new Monitor plugin and unseal
         the Trace plugin.

FEATURE: add optional script argument list tracking, which is opt-in at both
         compile-time and runtime (i.e. it requires both the SCRIPT_ARGUMENTS
         compile-time option and the ScriptArguments interpreter flag).

FEATURE: add -nodispose and -nocomplain options to the [exit] command.

FEATURE: add [object isnull] sub-command to return non-zero if the specified
         existing opaque object handle refers to a null object instance.

FEATURE: add [string is identifier] sub-command to check if a string is a legal
         ANSI C identifier.

FEATURE: add experimental support for the XDG_STARTUP_HOME and XDG_STARTUP_DIRS
         environment variables.

FEATURE: add the -timeout, -userinterface, -noevents, -nosleep, -nointerpreter,
         and -windowstyle options to the [exec] command.

FEATURE: add the -viaresource option to the [load] command.

FEATURE: add interactive #paused, #pause, and #unpause commands.  they can be
         used to manage paused interactive loops (i.e. for specific threads).

FEATURE: add optional boolean argument to the [info level] sub-command to force
         the full command name to be used in the returned argument list.

FEATURE: add -preview, -nopreview, -update, and -noupdate options to the [load]
         command.

FEATURE: add support for the %hh width modifier to the [format] command.

FEATURE: add the -global, -skip, and -noempty options to the [regexp] command.

FEATURE: enhance support for the BumpCacheLevel environment variable so it can
         be used to provide an integer level to be added to the default cache
         level.

FEATURE: add the [library matcharchitecture] and [library verifyarchitecture]
         sub-commands to check processor architecture of a library file name
         against that of the current process.

FEATURE: add WithCommands, WithFunctions, WithPolicies, and WithTraces lookup
         flags to allow callers to the GetPlugin method to find a plugin based
         on it owning one (or more) of the associated entity types in addition
         to its assembly name.

FEATURE: add the IIdentifier type as a supported type for command options.  it
         requires a two element list: identifier kind followed by its name.

FEATURE: add the SortMethods, ReverseOrder, NonPublic, SelectMethodIndex, and
         MinimumOptionalCount marshal flags to address core marshaller issues
         that may arise due to nondeterministic ordering of method overloads by
         the runtime.

FEATURE: add -ignorePatterns and -ignoreMatch options to the [test2] command.
         they can be used to ignore result mismatches that match the specified
         list of ignore patterns.

FEATURE: add ReturnAlias object flag to return the aliased command name for a
         newly created opaque object handle, if applicable.

FEATURE: embed a license certificate for the core library in official release
         builds.

FEATURE: expose UlongList container class as public and make use of it to add
         the GetEnumNamesAndValues and ToFlagsEnumList methods to the Utility
         class.

FEATURE: add [string is numeric] sub-command to check if a string can be easily
         converted to a numeric value of some kind.

FEATURE: add experimental [debug runtimeoverride] sub-command to override which
         runtime the core library thinks is being used.

FEATURE: add ExecuteMember method to the Engine class.  this method may be used
         instead of standard reflection APIs in order to access types available
         within the core library.

FEATURE: add UnknownCallback property to the IInterpreter interface, to be used
         during command resolution when the script engine encounters an unknown
         command.

FEATURE: add implicit conversion operators for the Argument and Result classes
         that accept an instance of the Variant class.

FEATURE: add UseParameterNames callback flag to enable the managed parameter
         names to be available from script callbacks.

FEATURE: by default, emit tracking information for each test run by the [test1]
         and [test2] commands.  add the TrackTestScripts interpreter flag and
         the -noTrack option to the [test2] command to control this behavior.

FEATURE: add -timeout option to the [time] command.

FEATURE: enhance [debug secureeval] sub-command with the -timeout, -nocancel,
         and -stoponerror options to enable more precise control over script
         cancellation and script evaluation that may contain events.

FEATURE: emit test suite name and outermost script file name as part of the
         overall result.

FEATURE: add NoNativeStack environment variable.  when set, the native stack
         checking subsystem will be disabled.

FEATURE: add experimental native stack checking support for some non-Windows
         platforms.  this feature does not work for Mono when using secondary
         threads, due to apparent bugs in their runtime.

FEATURE: add support for the DisableHost and NoConsoleHost script data flags to
         the LoadSettingsViaScriptFile subsystem.

FEATURE: add ability to emit the current stack trace with messages emitted via
         the TraceOps subsystem.

FEATURE: add MergeArguments method to the IArgumentManager interface.

FEATURE: add Created and CreatedNoThrow properties to IInterpreter interface.

FEATURE: add the [tcl result] sub-command.

FEATURE: add the [interp proclimit] and [interp varlimit] sub-commands and the
         associated properties to the IInterpreter interface.

FEATURE: add an optional boolean argument to the [info args] sub-command.  when
         non-zero, the default argument values will be included in the result.

FEATURE: add experimental support for using isolated application domains from
         within the LoadSettingsViaScriptFile subsystem, via the new optional
         ScriptDataFlags.UseIsolatedInterpreter flag bit.

FEATURE: add GetFramework method to the IInterpreter and IPlugin interfaces and
         to the Utility class.

FEATURE: add overloads of the Utility.FormatWrapOrNull method that can accept a
         list of strings via the IEnumerable<string> type.

FEATURE: add an overload of the Utility.FormatPluginAbout method that takes an
         string parameter with extra optional information.

FEATURE: add overloads of the Utility.DebugTrace method that can accept an
         interpreter parameter.

FEATURE: add the DoesEnvironmentVariableExist, GetUniquePath, ToFlagsEnumList,
         GetAssemblyDateTime, ProcessReflectionOptions, GetEnumNamesAndValues,
         GetPluginRelativeFileName, ChangeNativeCallback, AdjustTracePriority,
         GetStream, GetInstanceFlags, GetResourceStreamData, GetAnyString, and
         CheckAndMaybeModifyProcessReferenceCount methods to the Utility class.

FEATURE: add public MutablePair class and interface.

FEATURE: add RenameObject method to the IEntityManager interface.

FEATURE: add MustCreate host creation flag.  when set, an interpreter host must
         be created successfully in order for the PreSetup method to succeed.

FEATURE: add -noTrim command line option to disable trimming of surrounding
         whitespace from all subsequent command line arguments.

FEATURE: add method overload of TryParseFlagsEnum capable of masking off values
         and operators in order to limit the possible modifications to existing
         flag values.

FEATURE: add verbose mode to the [file owned] sub-command.

FEATURE: add Id property to InterpreterDisposedException and ScriptException
         classes, scoped to the application domain.  also, keep track of the
         number of created instances.

FEATURE: add ExitNoThrow property to the IInterpreter interface.

FEATURE: add [quit] script library helper procedure to exit the interactive
         shell, optionally performing any additional cleanup and maintenance
         tasks that may be required.

FEATURE: add the TestScriptWhatIf interpreter flag.  when set, the [test1] and
         [test2] commands will not evaluate any scripts.  instead, those tests
         will be counted as disabled, which are semantically treated as having
         been skipped even if they meet all the required test constraints.

FEATURE: *BREAKING CHANGE* add the NoNullArgument engine flag to prevent a null
         command result from being used as an argument value to any subsequent
         command.

FEATURE: *BREAKING CHANGE* add the WhatIf value to the ReturnCode enumeration.

FEATURE: *BREAKING CHANGE* add Disposing property to the IMaybeDisposed
         interface.

FEATURE: *BREAKING CHANGE* add GroupId property to the IInterpreter interface.

FEATURE: *BREAKING CHANGE* add DateTime property to the IPluginData interface.

FEATURE: *BREAKING CHANGE* add GetUri method to the IPlugin interface.

FEATURE: *BREAKING CHANGE* trim surrounding whitespace from all command line
         arguments by default.  this is part of a workaround to a bug in the
         .NET Core CLI (see GitHub issue #8892).

FEATURE: *BREAKING CHANGE* add PreviewArgumentCallback property to the
         IShellManager interface.

FEATURE: *BREAKING CHANGE* start making use of the TraceTextWriter property via
         the tracing (i.e. TraceOps) subsystem.

FEATURE: *BREAKING CHANGE* add GetCertificateFileName method to the IPlugin
         interface.

FEATURE: *BREAKING CHANGE* add Alias property to the IObjectData interface.

FEATURE: *BREAKING CHANGE* add the PreCanceled and PreHalted flag values to the
         NotifyFlags enumeration.

FEATURE: *BREAKING CHANGE* add experimental support for the variable assignment
         expression operator (i.e. ":=").

FEATURE: *BREAKING CHANGE* add support for procedures with named arguments via
         the new [nproc] command.  modify AddOrUpdateProcedure method to accept
         an optional ArgumentDictionary of named arguments.  add NamedArguments
         property to the IProcedureData interface.  finally, add [info nprocs]
         sub-command to return the list of procedures that use named arguments.

************************* Beta 1.0.6848.11041 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #187612 to #188488.

BUGFIX: the NetworkVariable class must HTML decode the payload values received
        from the server.

BUGFIX: preserve ordering of keys added to the PathDictionary class, because
        some callers rely on iterating over keys in the same order they were
        added.

BUGFIX: when performing tilde substitution, do not search for files that have
        extra directory information after the initial tilde and slash.

BUGFIX: fix return code handling in a couple [hash] sub-commands.

BUGFIX: handle ThreadAbortException in several contexts where threads are known
        to perform in a well-defined way.  generally, the targeted thread will
        simply exit.

BUGFIX: add some missing DebuggerStepThrough attributes to the Argument and
        Result classes.

BUGFIX: prevent the Utility.IsDebuggerPresent method from throwing exceptions.

BUGFIX: *BREAKING CHANGE* disallow automatic selection of static constructors
        when creating managed objects via reflection.  add the AllowAnyMethod
        marshal flag to override this behavior.

REFACTOR: check interpreter usability in the NamespaceOps.GetMapping method.

REFACTOR: avoid locking in the NativeConsole.IsSupported method to prevent some
          potential deadlocks.

REFACTOR: some general cleanup of the Engine, PackageOps, and XmlOps classes.

REFACTOR: audit and reform usage of the Interpreter.InternalSyncRoot property.

REFACTOR: when using the FormatOps.DisplayName method, avoid extra wrapping of
          double quotes.

REFACTOR: *BREAKING CHANGE* rename ResetFlags method of the IHost interface to
          ResetHostFlags.

FEATURE: arrange for static (configuration) fields of the TraceOps class to be
         copied into application domains created for isolated interpreters.

FEATURE: add ReadyCallback property to the IInterpreter interface.

FEATURE: add -test option to the [interp create] sub-command.

FEATURE: add the IsGlobalBusy property to the IInterpreter interface.

FEATURE: add the MaybeFillWithNull and MaybeAddRange methods to the IStringList
         interface.

FEATURE: add preliminary support for the Windows 10 October 2018 Update.

FEATURE: add support for logging server machine name to the tracing subsystem.

FEATURE: add static UseInterpreterCallback property to the Interpreter class,
         primarily for use by subsystems that cache and reuse instances, e.g.
         the LoadSettingsViaScriptFile method.

FEATURE: enhance LoadSettingsViaScriptFile method and its associated subsystem,
         so it can use an existing interpreter -OR- create and caching a "safe"
         interpreter.

FEATURE: add experimental handling of unrecoverable errors to the default host
         and tracing subsystems.

FEATURE: add GetAppSetting method to the Utility class.

FEATURE: add FORCE_TRACE compile-time option to force non-essential runtime
         diagnostic messages to be enabled in release builds.

FEATURE: improve handling of nested sub-commands so they can be abbreviated.

FEATURE: add support for reading the AppSettings directly from one or more XML
         files.  these enhancements, along with several others, involved heavy
         refactoring of the entire ConfigurationOps class.

FEATURE: add RefreshAppSettings environment variable.  if set, the application
         settings will be re-read from disk before the next time they are used.

FEATURE: add UseXmlFiles and MergeXmlFiles environment variables.  if set, the
         application settings from applicable XML files will be favored and/or
         merged, respectively.

FEATURE: add ability to capture the current stack trace into an instance of the
         Result class.

FEATURE: *BREAKING CHANGE* add IsAllowed method to the IScriptBinder interface.

FEATURE: *BREAKING CHANGE* add optional interpreter argument to [info cmdcount]
         sub-command.

FEATURE: *BREAKING CHANGE* add GetKeyPair and GetKeyRing methods to the IPlugin
         interface.

************************* Beta 1.0.6781.49042 RELEASE *************************

BUGFIX: make the synchronous form of the [after] command responsive to a thread
        being interrupted or aborted.

BUGFIX: always make use of the -encoding command line option when processing a
        script file in the shell.

BUGFIX: make sure the test run Id is passed to all necessary child processed in
        the test suite.

BUGFIX: prevent test socket-1.3 from reporting a spurious log sentry error due
        to it having no log file name set during the test suite epilogue.

BUGFIX: make sure the CONFIGURATION compile-time option is set for native Tcl.

BUGFIX: fix some duplicate values in the ConfigurationFlags enumeration.

BUGFIX: when compiled with both native Windows and Unix support, output to the
        console host does not work correctly on non-Windows platforms, because
        the Console.CursorVisible property is not implemented.  also, lack of
        native console support causes the wrong result to be returned from the
        SystemConsoleIsRedirected method.

BUGFIX: *BREAKING CHANGE* disallow the [package relativefilename] sub-command
        from within a "safe" interpreter.

REFACTOR: cleanup and adding more tracing to the shell exit code handling.

REFACTOR: improve formatting of trace messages and make it easier to use the
          trace output formatting flags.

REFACTOR: *BREAKING CHANGE* change return type to boolean for the Sleep and
          Yield methods of the IEventManager interface.

REFACTOR: *BREAKING CHANGE* use ShutdownFlags instead of boolean parameters for
          InterruptAndJoinOrAbortThread and rename it to MaybeShutdownThread.

FEATURE: add the -breakpoint option to the [info commands] sub-command.

FEATURE: add support for PreBreakpoint and PreWatchpoint notifications.

FEATURE: when canceling script evaluation for an interpreter, optionally allow
         the primary thread -OR- interactive thread to be interrupted as well.

************************* Beta 1.0.6781.49000 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #181527 to #187037.

BUGFIX: in the Eagle Package for Tcl (Garuda), make sure to unlock the package
        mutex when returning a wrong-number-of-arguments script error.

BUGFIX: fix for native Tcl SF bug #219233, which is related to [string match].
        since this change has may break old scripts, it is disabled by default
        and gated behind an interpreter flag.

BUGFIX: several options to the [time] and [test2] commands needed to be checked
        on a case-insensitive basis.

BUGFIX: make sure [sql execute] using the list or nested list format does not
        raise an error when there are no rows.

BUGFIX: stop [host open] from causing issues when executing interactive child
        processes.

BUGFIX: prevent the CommandCallback class from adjusting reference counts for
        locked objects.

BUGFIX: null operand string should be normalized to empty string prior to being
        used by expression operators.

BUGFIX: stop ObjectDisposedException from being thrown when calling ToString on
        a disposed object via the FireTraces subsystem.

BUGFIX: when recycling undefined variables, ensure they always have the correct
        set of traces.

BUGFIX: using [set] on a (previously) undefined variable should succeed even if
        the variable was read-only, etc.

BUGFIX: when merging sub-command arguments, treat all the new arguments as a
        single list.

BUGFIX: prevent the Event.MaybeDispose method, when called from the TclThread
        class, from throwing ObjectDisposedException.

BUGFIX: the IEventManager.ClearEvents method should only dispose of any IEvent
        objects that are flagged FireAndForget.

BUGFIX: prevent state of previously undefined variables from being incorrectly
        reused via things like the [array set] command after using the [global]
        or [variable] command on them.

BUGFIX: when present, the end-of-options option should be marked as present.
        also, do the same for the list-of-options meta-option.

BUGFIX: make sure all threads created by the script engine have a well-defined
        outer native stack pointer.

BUGFIX: the asynchronous script evaluation performed by the Engine class should
        honor the NoBgError event flag.

BUGFIX: take care to invalidate the interpreter fields within the EngineThread
        object instances so they do not interfere with garbage collection.

BUGFIX: make the ScriptThread.Send method more robust when useEngine parameter
        is non-zero.

BUGFIX: only call WindowOps native wrapper methods when running on Windows.

BUGFIX: the experimental [scope global] sub-command should honor the read-only
        and immutable setting for the interpreter.

BUGFIX: aliased opaque object handles should not be included in the results of
        the [info ensembles] sub-command.

BUGFIX: have the _Commands.Ensemble class override IExecute.Execute in order to
        actually execute its configured sub-command implementation.

BUGFIX: correct comparison of the parameter type list for GetDelegate method of
        CommandCallback.

BUGFIX: make sure that specifying an ambiguous option results in an appropriate
        error message.

BUGFIX: avoid calling GetType when the object might be a transparent proxy.

BUGFIX: when cleaning up an opaque object handle, avoid casting the contained
        object value to the Interpreter type during the check to determine if
        the object value is really an interpreter associated with the current
        one (e.g. a parent or child).

BUGFIX: attempt to work around issues with String.Compare and String.Equals in
        the .NET Framework that causes it to consider an empty string equal to
        a string consisting only of NUL characters.

BUGFIX: mark various [object invoke], [object isoftype], and [object dispose]
        related options as "unsafe", including the -nocomplain, -marshalflags,
        -objectname, -aliasreference, -argumentflags, -parametermarshalflags,
        -synchronous, -nodispose, and -verbose options.

BUGFIX: allow "safe" interpreters to use the -returntype callback option.

BUGFIX: make GetNestedObject and GetNestedMember more robust in the face of
        interpreter locking errors.

BUGFIX: prevent result limits from being circumvented via the [string repeat]
        sub-command and [lrepeat] command.

BUGFIX: when returning error messages about unknown or ambiguous option names,
        do not include "unsafe" options for "safe" interpreters.

BUGFIX: prevent the [tcl load] sub-command and its associated subsystem from
        trying to load native Tcl libraries designed for different operating
        system than the one currently in use.

BUGFIX: *BREAKING CHANGE* mark all options to the [unset] command as "unsafe",
        except for the -nocomplain option.

BUGFIX: *BREAKING CHANGE* make the Create and Cleanup methods of the
        CommandCallbackWrapper class private as there is no reason for them to
        be public.

BUGFIX: *BREAKING CHANGE* remove the Cleanup, Shared, NoPolicies, NoTraces,
        NoPackageIndexes, SecurityWasEnabled, and ArgumentLocation values from
        the InterpreterFlags enumeration.  create new private enumeration type
        to deal with these internal interpreter state flags.  this is necessary
        to simplify preventing these flags from being copied, accidentally or
        otherwise, when creating new interpreters (e.g. via the [interp create]
        or [test2] commands).

REFACTOR: add preliminary support for the .NET Framework 4.7.2.

REFACTOR: move all String.Equals and String.Compare wrapper methods to the new
          shared StringOps class and make use of it from the core library and
          the updater tool.  carefully audit all use of the StringComparison
          enumeration as well as the String.Equals and String.Compare methods.

REFACTOR: formalize save/restore semantics for the InterpreterStateFlags and
          CacheFlags in the EvaluateScript and EvaluateStartupScript methods
          that get executed during script library initialization.

REFACTOR: cleanup CommandCallback class by breaking the GetDelegate method into
          easily digestible pieces.

REFACTOR: enhance native stack checking so that it deals better with threads
          from the thread pool.

REFACTOR: cleanup the Option.FromString method and add a simpler overload that
          is easier to use from scripts.

REFACTOR: make sure that help groups and topics are ALWAYS in sorted order.

REFACTOR: stop ignoring return values from SaveEnabledAndForceDisabled.

REFACTOR: constrain tests excel-* to run only when the Excel instance is usable
          by the test suite.

REFACTOR: cleanup use of HashAlgorithm in the RuntimeOps class.

REFACTOR: cleanup and unify use of the EventQueue fields in the EventManager
          class.

REFACTOR: add NuGet tools packages specifically targeted to version 2.0 and 4.0
          of the CLR.

REFACTOR: add preliminary support for the .NET Standard 2.0 via .NET Core 2.0.

REFACTOR: simplify and cleanup ResultList handling in the Value class.

REFACTOR: allow "safe" interpreters to use [object invokeraw].

REFACTOR: add InternalHardTryLock method, which may block for a short time, for
          use in situations where being unable to lock the interpreter may pose
          a problem.

REFACTOR: move Disposed boolean properties to the IMaybeDisposed interface.

REFACTOR: robustify management of console foreground and background colors by
          the built-in console host.

REFACTOR: *PERF* make it possible to disable cached Argument object usage for
          each distinct usage type.

REFACTOR: *PERF* stop using Argument objects as values for procedure arguments.

REFACTOR: *PERF* create specially optimized operator/function lookup methods in
          the Interpreter class for use by the sub-expression evaluator.

REFACTOR: *PERF* cache operators as they are used in a fixed-size array, based
          on their lexemes.

REFACTOR: *HACK* avoid exceptions from Application.DoEvents on Mono due to bad
          or missing X11 configuration.

REFACTOR: *BREAKING CHANGE* rename GetTypeCallback delegate to GetTypeCallback3
          and add a GetTypeCallback1 parameter to the GetTypeList method.

REFACTOR: *BREAKING CHANGE* add the Flags attribute to the enumeration types
          DbResultFormat, DbExecuteType, and DbConnectionType.

REFACTOR: *BREAKING CHANGE* add assembly file name string parameter to the
          CreateDbConnection method of the Utility class.

REFACTOR: *BREAKING CHANGE* add allowUnsafe boolean parameter to the BadOption,
          AmbiguousOption, and TryResolve methods of OptionDictionary class.

REFACTOR: *BREAKING CHANGE* when attempting to unload an AppDomain, retry up to
          three times before giving up.

REFACTOR: *BREAKING CHANGE* move TryLock, Lock, and Unlock methods from the
          IEventManager interface to the ISimpleSynchronize interface.  also,
          add ISynchronize interface as a base for IEventManager interface.

REFACTOR: *BREAKING CHANGE* add a boolean parameter to the CacheToString method
          of the various container classes that implement it.

REFACTOR: *BREAKING CHANGE* rename the Value.GetType method overloads that deal
          with type name lookups to GetAnyType.  also, revise error handling so
          detailed error messages are omitted unless the AllGetTypeErrors value
          flag is specified.

REFACTOR: *BREAKING CHANGE* change the method signatures of the IScriptBinder
          interface and Value class to use the ITypedInstance and ITypedMember
          interfaces.

REFACTOR: *BREAKING CHANGE* change string comparison behavior of all operators
          to ignore the current culture by default.

REFACTOR: *BREAKING CHANGE* replace boolean parameters to the GetPackagePath
          method with a PathFlags parameter.

REFACTOR: *BREAKING CHANGE* change all thread Ids to be long integers.  this
          change impacts the IInterpreter and IAsynchronousContext interfaces
          and the Utility class.

REFACTOR: *BREAKING CHANGE* add HostCreateFlags parameter to all overloads of
          the ScriptThread.Create method that accept a CreateFlags parameter.

REFACTOR: *BREAKING CHANGE* add HostCreateFlags property to the IScriptThread
          interface.

REFACTOR: *BREAKING CHANGE* add static GetStartupHostCreateFlags method to the
          Interpreter class.  this new method must be used to change host flags
          instead of the GetStartupCreateFlags method.

REFACTOR: *BREAKING CHANGE* remove all host related values from the CreateFlags
          enumeration.

REFACTOR: *BREAKING CHANGE* remove legacy Interpreter.Create method overloads.

REFACTOR: *BREAKING CHANGE* add HostCreateFlags to InterpreterSettings class.

REFACTOR: *BREAKING CHANGE* remove all boolean properties from the IHostData
          interface and the HostData constructor and replace them with the
          HostCreateFlags property.

REFACTOR: *BREAKING CHANGE* add a HostCreateFlags parameter to all overloads of
          the Interpreter.Create method that accept a CreateFlags parameter.

REFACTOR: *BREAKING CHANGE* add IShellCallbackData interface for use with the
          interactive loop subsystem.

REFACTOR: *BREAKING CHANGE* rename the ICallbackData.DelegateType property to
          OriginalDelegateType.  also, add a ModifiedDelegateType property.

REFACTOR: *BREAKING CHANGE* add the IInteractiveLoopData interface and have all
          other public surface area use it, including the IHost interfaces.

REFACTOR: *BREAKING CHANGE* add hash algorithm name parameter to the GetData
          method of the IRfc2898DataProvider interface.

REFACTOR: *BREAKING CHANGE* remove CompareUserStrings and CompareSystemStrings
          methods from the Utility class.

REFACTOR: *BREAKING CHANGE* add Insert method to the IStringList interface.

FEATURE: add NetworkVariable class to enable linking a script variable to the
         specified web URI via well-defined GET and POST requests.

FEATURE: add [info path] sub-command to fetch cross-platform path information.

FEATURE: add -assemblyfilename option to the [sql open] sub-command.

FEATURE: add TreatAsDotNetCore and TreatAsMono environment variables, which can
         be used to attempt to treat the current runtime as though it were .NET
         Core and/or Mono, respectively.

FEATURE: add -debug option to [object invoke] and related sub-commands.  when
         present, various conditions may trigger an attempt to break into the
         managed debugger.

FEATURE: add NoBreak environment variable.  when set, attempts to break into
         managed debugger will be ignored.

FEATURE: add [interp source] sub-command to make it easier to evaluate files in
         child interpreters.

FEATURE: add [debug emergency] sub-command to make all the necessary changes to
         enable debugging of scripts on the current thread.

FEATURE: add -objectvalueflags option to the [object create], [object get],
         [object members], and [object search] sub-commands.

FEATURE: add -marshalflags option to the [object get], [object members] and
         [object search] sub-commands.

FEATURE: add StringMatchStackChecking interpreter flag to harden [string match]
         against stack overflow exceptions.

FEATURE: add -execReturnCodes and -execExitCode options to the [test2] command.

FEATURE: add -objecttype and -proxytype options to the [object invoke] and
         [object invokeraw] sub-commands.

FEATURE: add OnlyExists value to the EventWaitFlags enumeration.  it's used to
         cause the [vwait] command to return if the specified variable exists,
         even if it has not changed.

FEATURE: add OnlyWaiting value to the EventWaitFlags enumeration.  it's used to
         cause the [vwait] command to return if the specified variable is being
         waited on.

FEATURE: add -clear and -timeout options to the [vwait] command.

FEATURE: add -isolationOtherArguments / -isolationLastArguments options to the
         [test2] command.

FEATURE: add the Interactive interpreter creation flag to force a newly created
         interpreter to start in interactive mode immediately upon creation.

FEATURE: add the ThrowOnNoFeature interpreter creation flag to cause exceptions
         to be thrown for missing features from third-party third-party plugins
         and applications.

FEATURE: add the [package vsort] sub-command, for use with [lsort], in order to
         perform a relaxed sort on strings that may or may not actually conform
         to the string format of a Version object.

FEATURE: add -nocomplain option to the [file delete] sub-command.

FEATURE: add optional boolean argument to the [info assembly] sub-command to
         return the entry assembly information.

FEATURE: add runtimeExtraVersion element to the eagle_platform array and add an
         optional argument to the [info runtimeversion] sub-command to force it
         to be returned.

FEATURE: add experimental [host screen] sub-command to manage multiple console
         screen buffers.

FEATURE: add -isolated option to the [load] command to allow for fine-grained
         control over the plugin loading process.

FEATURE: add CacheFlags environment variable.  it can be used to control which
         caches are enabled for newly created interpreters.

FEATURE: add TraceCategories environment variable, which can be used to set the
         default trace categories.

FEATURE: add TracePriority and TracePriorities environment variables, which can
         be used to set the default trace priority and its associated mask.

FEATURE: for the PowerShell cmdlet, allow the interpreter creation flags and
         command-line arguments to be customized.

FEATURE: simplify using the custom MSBuild tasks via the NuGet tools package.

FEATURE: add support for the [host cancel] sub-command when running under Mono
         on Unix.

FEATURE: add [debug lockloop] sub-command to lock / unlock the ability of other
         threads to obtain interactive input while in the interactive loop.

FEATURE: add TimeServers property to the IInterpreter interface.  its value, if
         any, is not currently used by the core library.

FEATURE: add Suffix to the [info engine] sub-command.

FEATURE: add [maybeLoadScripts] script library procedure that works like the
         [loadScripts] script library procedure, except it permits zero or more
         script files to be skipped if its associated global variable is set.

FEATURE: add a method overload for the IEventManager.ListEvents method that can
         be used to fetch (zero or more) events matching an optional filter.

FEATURE: add [object fromvar] sub-command to create an opaque object handle for
         the object value of the specified variable.

FEATURE: add CurrentName property to the ITestContext interface and support for
         it within the test suite infrastructure.

FEATURE: add [interp stub] sub-command to simplify the creation of placeholder
         commands (e.g. for use with [interp subcommand], etc).

FEATURE: add NewCommandCallback property to the IInterpreter interface.

FEATURE: add -simple option to the [parse options] sub-command.

FEATURE: add SetupChannels method to the IStreamHost interface.

FEATURE: add SetChannelEncoding and SetChannelTranslation methods to the
         IEntityManager interface.

FEATURE: add Attach static factory methods to the ScriptThread class to enable
         using existing interpreters.

FEATURE: add ScriptEventState, ScriptEventThread, ScriptThreadClientData, and
         ScriptTimeoutThread test classes, for use by the interactive language
         demonstration project.

FEATURE: add UseNewEngineThread interpreter flag to cause asynchronous script
         evaluation to create and use thread instead of the thread pool.

FEATURE: add GetContext method to the IInterpreter interface and make use of it
         from the [info context] sub-command.

FEATURE: add loadPackageClientToolset procedure to the core script library.

FEATURE: support the Uri type in the Option and Variant classes.

FEATURE: add GetHashCode method to the Utility class that accepts a byte array
         parameter.

FEATURE: add CreateAndOrStartThread, CreateHashAlgorithm, LookupFactoryType,
         FormatTypeNameOrFullName, TryDispose, IsDotNetCore, QueueUserWorkItem,
         InterruptAndJoinOrAbortThread, SystemStringEquals, GetFactoryTypeName,
         StringEquals, GetHostCreateFlags, GetThreadTimeout, CreateViaFactory,
         GetPathComparisonType, and GetSystemComparisonType methods to the
         Utility class.

FEATURE: add NoPopulateOsExtra environment variable.  setting it will cause
         automatic asynchronous population of the tcl_platform(osExtra) array
         element to be skipped.

FEATURE: add interactive #intsec command to enable or disable script signing
         policies and core script certificates for interactive interpreter.

FEATURE: add the -reflectiononly and -fromobject options to the [object load]
         sub-command.

FEATURE: enhance [host writebox] sub-command to accept an opaque object handle
         that refers to a StringPairList.

FEATURE: add FromString static factory methods to the StringPairList class.

FEATURE: *BREAKING CHANGE* add GetCertificate method to the IPlugin interface.

FEATURE: *BREAKING CHANGE* add proxy type parameter to the GetObject method of
         the IScriptBinder interface.

FEATURE: *BREAKING CHANGE* add long microseconds and boolean changed parameters
         to the WaitVariable method of the IVariableManager interface.

FEATURE: *BREAKING CHANGE* add ReorderMethodIndexes method to the IScriptBinder
         interface.

FEATURE: *BREAKING CHANGE* add the GetObject and GetMember methods to the
         IScriptBinder interface in order to allow type, object, and member
         resolution to be customized.

************************* Beta 1.0.6543.58654 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #178066 to #180112.

BUGFIX: using [scope destroy] on the active call frame should not leak opaque
        object handles.

BUGFIX: verify correct number of arguments for [after clear], [after counts],
        and [after dump] sub-commands.

BUGFIX: be sure to remove leading colons from qualified variable names when
        using the GlobalOnly flag with namespaces enabled.

BUGFIX: add NoInteractiveTimeout interpreter flag.  this makes it possible to
        disable timeout thread management by the interactive loop.

BUGFIX: prevent [exec] of a process that uses the core library (e.g. the shell,
        etc) from changing settings for the console.

BUGFIX: stop leaking per-thread context manager data from thread pool threads
        that are used to service asynchronous script evaluation.

BUGFIX: have [file rights] handle the generic file system rights even though
        they are missing from the FileSystemRights enumeration.  this required
        enhancing the EnumOps subsystem, making it possible to query the names
        and values for an enumeration even when compiled for the .NET Framework
        4.0 (previously, this functionality was only present when compiled for
        the .NET Framework 2.0).  finally, the method FormatOps.FlagsEnumV2 was
        added, allowing its caller to optionally pass (extra) pre-existing Enum
        names and values.

BUGFIX: the WebClient method overrides in the ScriptWebClient class should use
        their virtual properties to access their data, not their fields.

BUGFIX: fix the list of inputs to the EagleLibraryResGenUnsetReadOnly build
        target.

BUGFIX: the PrivateShellMainCore method must refresh its local quiet variable
        after a script evaluation.

BUGFIX: in the GetAndExecuteClrMethod function of the Eagle Native Package for
        Tcl (Garuda), load the configuration data prior to (possibly) checking
        for the METHOD_STRICT_CLR flag.

BUGFIX: make [info level] return an accurate result when there is more than one
        consecutive, identical scope call frame.

BUGFIX: be more explicit about preventing [array set] from working with linked
        variables.  this restriction may be relaxed in the future.

BUGFIX: add CheckDisposed calls that were missing from a few public methods of
        the EngineThread class.

BUGFIX: correct checks in the test constraints package for dealing with .NET
        Framework build numbers.

BUGFIX: prohibit use of non-identifier characters for table and column names in
        the DatabaseVariable class.

BUGFIX: the [info args], [info body], and [info default] sub-commands, et al,
        should be able to resolve namespace imported procedure names.

BUGFIX: modify ComplainViaTest functionality so it will skip interpreters that
        do not belong to the current thread.

BUGFIX: *BREAKING CHANGE* the setup mutexes should be closed when unloading the
        AppDomain and most likely when exiting the process as well.

BUGFIX: *BREAKING CHANGE* using [namespace delete ::] should leave the global
        call frame in a usable state.

REFACTOR: add support for WiX version 3.11.

REFACTOR: aggressively cleanup IEvent objects in order to minimize outstanding
          native event handles.

REFACTOR: for [evalWithTimeout] script library procedure in the test package,
          make sure any [vwait] in the passed script will stop when canceled.

REFACTOR: improve detection of the various Windows 10 updates.  also, add the
          osExtra element to the Tcl platform array (tcl_platform), containing
          more detailed information about the operating system.

REFACTOR: add preliminary support for the .NET Framework 4.7.1.

REFACTOR: cleanup error message handling for the [object] command.

REFACTOR: add NuGet package specifically targeted to version 2.0 of the CLR.

REFACTOR: add MaybeNextStep method to the IDebugger interface and start making
          use of it from the script engine.

REFACTOR: further modularize and cleanup the interpreter disposal pipeline to
          make it easier to maintain and understand.

REFACTOR: add TracePriority enumeration to help classify the relative priority
          of every trace message emitted by the core library.

REFACTOR: in the EngineThreadStart method, catch the ThreadAbortException and
          ThreadInterruptedException exception types.

REFACTOR: revise and optimize how operands are converted to numeric types from
          the string arguments passed into various operators.  the GetNumeric
          method was added to the Value class in order to facilitate this.

REFACTOR: cleanup culture related initialization performed by the Value class.

REFACTOR: improve handling of the ValueType type in the core marshaller.

REFACTOR: *PERF* add SuppressUnmanagedCodeSecurity attributes to the unmanaged
          function pointer delegates, where applicable.

REFACTOR: *BREAKING CHANGE* all DateTimeKind values now default to Unspecified.

REFACTOR: *BREAKING CHANGE* move ValueFlags.Object value from the Any mask to
          the AnyVariant mask.

REFACTOR: *BREAKING CHANGE* add Interpreter parameter to the Value.GetVariant
          method.

REFACTOR: *BREAKING CHANGE* add DateTimeKind parameter to the Value.GetValue
          method.

REFACTOR: *BREAKING CHANGE* stop exposing the Binder class from the library and
          minimize its use internally.

REFACTOR: *BREAKING CHANGE* modify the Eagle Native Package for Tcl (Garuda) so
          that it it will call the managed detach or shutdown methods only when
          the bridge is marked as started.  this makes it a bit easier to make
          use of the Garuda package without Eagle.

REFACTOR: *BREAKING CHANGE* rename the -flags option to [interp service] to
          -eventflags.

REFACTOR: *BREAKING CHANGE* cleanup all error message generation performed by
          the Value class.

REFACTOR: *BREAKING CHANGE* include the Id of the interpreter in all generated
          event names.

REFACTOR: *BREAKING CHANGE* add a missing space to the license agreement.

REFACTOR: *BREAKING CHANGE* improve null/empty object detection used by the
          formatting subsystem.  mostly, this impacts formatting of various
          diagnostic messages.

FEATURE: add -datetimekind option to the [string format] sub-command.

FEATURE: add StopOnComplain and StopOnGlobalComplain event wait flags for use
         with [vwait].  when set, event processing will stop if the associated
         complaint count was incremented during the current iteration of the
         event loop.

FEATURE: add -global option to the [scope create] sub-command.  when used with
         the -clone option, it forces the variables from the global call frame
         to be cloned instead of the current call frame.

FEATURE: add Cancel and ResetCancel method overloads with a Result parameter to
         the ScriptThread class.

FEATURE: add FailPending cancel flag to have the Engine.ResetCancel method to
         return an error when the interpreter is busy.

FEATURE: add ResetCancel callback flag to reset the script cancellation flag
         before invoking CommandCallback scripts (i.e. those evaluated when a
         delegate is used).

FEATURE: add FireAndForget callback flag in order to remove an asynchronous the
         callback from the interpreter after it is invoked.

FEATURE: enhance the [after counts] sub-command to return several key metrics
         related to the event manager subsystem.

FEATURE: add Lock, Unlock, and TryLock methods to the IEventManager interface.
         also add QueueEventCount, QueueIdleEventCount, MaybeDisposeEventCount,
         and ReallyDisposeEventCount properties to the IEventManager interface.

FEATURE: add options to the [vwait] command.  the -force option skips checking
         for queued events entering the wait.  the -limit option will limit the
         number of events processed.  the -leaveresult option prevents [vwait]
         from modifying the interpreter result unless there is an error.  the
         -nocomplain option will prevent the wait operation itself from raising
         script errors.  the -eventwaitflags and -variableflags options allow
         fine-grained control over event processing.  the -handle option can be
         used to add an external event source into the event wait processing.

FEATURE: support optional pattern argument to the [array random] sub-command.
         also, add the -matchname and -matchvalue options to control whether
         keys and/or values are matched against by the pattern.

FEATURE: add -killonerror option to the [exec] command.  this will cause the
         child process to be killed if the interpreter encounters any kind of
         error (e.g. script canceled, interpreter exited, etc).

FEATURE: add AutoFlagsEnum object flag to enable automatic combining of flags
         enumeration values when setting field values via [object invoke].

FEATURE: add Banner method to the IPlugin interface and use it to augment the
         banner information emitted by the #version interactive command.

FEATURE: add the [ensemble isolated] sub-command to the [ensemble] abstract
         command.

FEATURE: add -preprocessarguments option to the [exec] command.  it evaluates a
         script command, passing the file name, directory, and the command line
         arguments.  based on its return code, the script command specified can
         opt to cancel execution of the child process, alter its arguments, or
         allow it to proceed as usual.

FEATURE: add -quiet command line option to enable or disable quiet mode for the
         interactive shell.

FEATURE: add introspection support for the static data in the TraceOps class.

FEATURE: add BgErrorResetCancel interpreter flag.  when this flag is set, the
         script cancellation flags for the interpreter will be reset prior to
         executing its background error handler.

FEATURE: add undocumented isBreakOnDemand environment variable, supported only
         via the core script library [runAllTests] procedure, which will break
         into the script debugger before evaluating a test file.

FEATURE: add ScriptTraceListener class, which can be used to evaluate a script
         when its TraceListener methods are called.

FEATURE: add method overlods of the Utility.DebugTrace method that accept a
         TracePriority parameter.

FEATURE: add TryCombineUris and ExtractPolicyContextAndTextAndBytes methods to
         the Utility class.

FEATURE: add the -isolated command line option to enable or disable plugin
         isolation.

FEATURE: add [array for] sub-command that implements the semantics described by
         TIP #421.

FEATURE: add StopOnNullType, StopOnNullObject and StopOnNullMember value flags.
         if used, they cause nested type, object, and member value resolution,
         respectively, to stop (without raising an error) when a nested search
         fails -OR- encounters a null object value.

FEATURE: add the -objectvalueflags and -membervalueflags options to the
         [object invoke] and [object invokeraw] sub-commands.

FEATURE: add [interp resultlimit] sub-command.  also add the ExecuteResultLimit
         and NestedResultLimit properties to the IInterpreter interface.

FEATURE: add SetVariableEnumerable method to the IVariableManager interface.

FEATURE: add -all option to the [scope close] sub-command.  this will cause all
         nested scope call frames to be popped.

FEATURE: add [package vloaded] sub-command to provide a list of loaded packages
         and their important metadata.

FEATURE: add experimental IsAssignableFrom marshal flag to enable use of the
         custom Type.IsAssignableFrom method replacement, mostly for use with
         Mono.

FEATURE: add the -marshalflags option to the [object isoftype] sub-command.

FEATURE: add the -references and -noremove options to the [object cleanup]
         sub-command.

FEATURE: add the TemporaryReturnReference object flag, which is used to enable
         the marking of opaque object handle references added via [return] as
         temporary.  upon returning to the outermost script evaluation level in
         the engine (i.e. not the same as [info leve]), all of these temporary
         references are cleaned up automatically, which may cause the objects
         attached to their associated opaque object handles to be disposed.

FEATURE: add the RemoveReference callback flag, which is used with dynamic
         delegates to cause their return value to lose a reference without
         actually being disposed.

FEATURE: add the NoSetVariable marshal flag, which is used to force the core
         marshaller to skip setting script variables that are associated with
         output parameters.

FEATURE: add ByValHandleByValue and ByRefHandleByValue marshal flags, which are
         used to force the core marshaller to consider the value of a variable
         when its name is specified in place of an input or output parameter,
         respectively.

FEATURE: add evalAsync and isNonNullObjectHandle procedures to the core script
         library.

FEATURE: add downloadAndExtractNativeTclKitDll procedure to the core script
         library.

FEATURE: add downloadAndExtractSecurityToolset procedure to the core script
         library.

FEATURE: add requestLicenseCertificate procedure to the core script library.

FEATURE: add an overload of the Utility.FormatWrapOrNull method that accepts a
         new boolean parameter that is used to activate better display string
         handling.

FEATURE: add overloads of the Utility.DebugTrace method that accept Exception
         and TracePriority parameters.

FEATURE: add [tcl available] sub-command, which has exactly the same arguments,
         options, and behavior as the [tcl find] sub-command, differing only in
         its result handling: if native Tcl libraries are found, its result is
         true; otherwise, its result is false.  it does not normally raise any
         script errors.

FEATURE: add Connected and Socket properties to the Channel class (only usable
         for network-based streams).

FEATURE: add highly experimental [scope global] sub-command to force a named
         scope to act as the global call frame for the current thread.

FEATURE: *BREAKING CHANGE* convert [debug break] sub-command to use standard
         option processing and add the -interpreter option.

FEATURE: *BREAKING CHANGE* add ComplainViaTrace environment variable.  setting
         it will cause complaint output to the sent to the active Debug and/or
         Trace listeners.  this is technically a breaking change, because the
         legacy behavior always sent complaint outout the active Debug and/or
         Trace listeners.

FEATURE: *BREAKING CHANGE* add -raw option to the [debug trace] sub-command,
         which is now off by default.  also, add the -priority option, which
         defaults to the currently configured default trace priority.

FEATURE: *BREAKING CHANGE* the Interpreter class now implements the IIdentifier
         interface with read-only values for the Kind, Id, and Name properties.
         the Group, Description, and ClientData properties are read-write.  the
         GetIdentifier method has also been enhanced to handle interpreters.

FEATURE: *BREAKING CHANGE* when the core script library is embedded, also embed
         the core test package.

FEATURE: *BREAKING CHANGE* add the -alias option to the [interp create]
         sub-command.

************************* Beta 1.0.6483.12345 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #162010 to #177030.

BUGFIX: prevent NativeDelegate.Dispose from throwing ObjectDisposedException if
        the associated NativeModule has already been disposed.

BUGFIX: the WrapperDictionary class should not throw even if the target entity
        has been disposed (e.g. the Remove method).

BUGFIX: avoid waiting forever for events queued to a TclThread with a timeout
        value set.

BUGFIX: do not call the native Tcl notifier on a thread unless a native Tcl
        interpreter has been created -AND- the native Tcl thread has not yet
        been finalized.

BUGFIX: correct help text for the interactive #hinfo command.

BUGFIX: stop the native console from being closed if any built-in interpreter
        host instance within the application domain is currently using it for
        reading and/or writing.  also, prevent it from being closed if another
        application domain is using the built-in console host.

BUGFIX: prevent Engine.SetExceptionErrorCode method from throwing an exception
        if the original target site is within an assembly that was loaded into
        an isolated AppDomain.

BUGFIX: the [upvar] command must handle global namespace call frames even when
        the target variable does not yet exist.

BUGFIX: fix and/or address issues found by another static analysis tool.

BUGFIX: correct hash algorithm handling within the BeforeFile policy checking.
        this was a typo.

BUGFIX: supplementary command line arguments should be inserted into the final
        command line in the right order: first from the interpreter host, then
        from the AppSettings, and finally from the arguments file.  the initial
        command line arguments must occur after all supplementary command line
        arguments.

BUGFIX: prevent supplementary command line arguments from the same arguments
        file from being added twice, one by the interpreter host and once from
        the primary arguments file.

BUGFIX: complaint handling should only trigger a debugger breakpoint when the
        current thread already has an outstanding complaint (i.e. previously,
        the complaint nesting level was per-AppDomain, which was wrong).

BUGFIX: process WinForms events for all builds, even those that do not include
        support for native Windows integration, as long as they include support
        for WinForms itself.

BUGFIX: an object alias created via [library call] should not have an empty
        sub-command name.

BUGFIX: *BREAKING CHANGE* the subSpec argument to [regsub] should be completely
        ignored when the -eval option is used.

REFACTOR: for Mono-aware builds, avoid using the UserInteractive properties to
          determine if interactive yes/no prompts should be displayed because
          they always return false.

REFACTOR: dynamically introspect the core library to find [expr] operators and
          functions.

REFACTOR: move all knowledge of known supported Tcl versions to the new test
          suite helper procedure [getKnownTclVersions], which helps clean up
          the related constraint checking significantly.

REFACTOR: revise internals of the [regsub] support subsystem, pursuant to the
          changes required to implement TIP #463.

REFACTOR: move prefixed environment variable (i.e. configuration value) support
          methods to the new GlobalConfiguration class.

REFACTOR: revise script engine usage of the PolicyFlags values.

REFACTOR: cleanup and modularize use of the BoxCharacterSets property.

REFACTOR: use the IPluginData interface instead of IPlugin, when applicable.

REFACTOR: stop calling the ToString method using integer literals 0 and 1.

REFACTOR: cleanup usage of the Callback, Interpreter, and ClientData properties
          of the IEvent interface.

REFACTOR: add preliminary support for the .NET Framework 4.7.

REFACTOR: move AttributeOps methods shared with the updater tool to the Shared
          namespace.

REFACTOR: cleanup the NativeOps methods related to native library loading to
          allow for simpler error handling semantics in callers.

REFACTOR: add TclExitUnloadFlags property to the Interpreter class for use by
          the Tcl API object to help determine the unload flags to use from
          within the ExitProc callback.  also, robustify the library-3.* tests
          so they can deal with having a pre-loaded native Tcl library.

REFACTOR: *BREAKING CHANGE* divide the FindFlags value Architecture into three
          pieces: one to control finding architecture-specific binaries, one to
          control extracting the per-architecture magic values, and finally one
          to control matching against the per-architecture magic values.

REFACTOR: *BREAKING CHANGE* add a new core interface IIdentifierBase and move
          the key properties from the IIdentifier interface to it.

REFACTOR: *BREAKING CHANGE* move the PublicKey class to the shared namespace.

REFACTOR: *BREAKING CHANGE* move the BuildType and ReleaseType enumerations to
          the shared namespace.

REFACTOR: *BREAKING CHANGE* add the TypeName property to the IFunctionData and
          IOperatorData interfaces.

REFACTOR: *BREAKING CHANGE* add the typeName parameter to the FunctionData and
          OperatorData constructors.

REFACTOR: *BREAKING CHANGE* rename -args option for [regsub] to -extra.

REFACTOR: *BREAKING CHANGE* rename HashAlgorithm property of the IPolicyContext
          interface to HashAlgorithmName.

REFACTOR: *BREAKING CHANGE* add Unsafe option flag to the -debug, -isolated,
          -nosecurity, -security, -standard, -trace, and -unsafeinitialize
          options of the [interp create] sub-command.

REFACTOR: *BREAKING CHANGE* move the License class into the Shared namespace.

FEATURE: add UseTrustedUri script data flag to the LoadSettingsViaScriptFile
         method and its associated subsystem.

FEATURE: add -maybezerostring option to the [unset] command.  when present, it
         will behave identically on platforms where strings can successfully be
         zeroed; otherwise, it will be ignored.

FEATURE: add -robustify option to the [tcl find], [tcl load], [tcl select], and
         [tcl versionrange] sub-commands.  its purpose is to set the flags that
         will result in the best chance of successfully finding, selecting, and
         loading a robust native Tcl library.

FEATURE: add an optional boolean argument to the [tcl module] sub-command.  if
         present and non-zero, some additional information about the native Tcl
         module will be returned.

FEATURE: add the [library handle] sub-command to query the library handle for a
         native library that is already loaded into the process; the value zero
         will be returned if the underlying platform lacks the necessary native
         API -OR- the specified native library has never been loaded into the
         process.

FEATURE: add experimental support for the decimal radix prefix "0d".

FEATURE: add experimental support for the \d backslash escape sequence.

FEATURE: add ScriptBaseUri to the [info engine] sub-command.

FEATURE: add -creationflagtypes option to the [interp create] sub-command to
         control which default flags from the parent interpreter are used.

FEATURE: add interactive #dcflags, #diflags, #dizflags, and #dscflags commands
         to display and/or set the default creation flags, interpreter flags,
         initialization flags, and script flags for the interactive interpreter.

FEATURE: add experimental support for the [info linkedname] sub-command, which
         was proposed in TIP #471 by Mathieu Lafon.

FEATURE: add the SelectType method to the IScriptBinder interface and use it to
         improve the COM interop type selection algorithm, via optional object
         flags PreferMoreMembers, PreferSimilarName and RejectDissimilarNames.

FEATURE: add the GetEncodingOrDefault method to the IEntityManager interface.

FEATURE: add the ElementSelectionCallback delegate type.

FEATURE: add the SkipThisAssembly and SkipThisStream execution policy flags.

FEATURE: add the GetValue and SetValue static methods to the Result class.  add
         a GetValue static method to the Argument class.

FEATURE: add an optional boolean argument to the [info identifier] sub-command
         to return all common identifier details instead of just the unique Id.

FEATURE: add the UseOwner, Asynchronous, and AsynchronousIfBusy callback flags
         in order to use the owner IScriptThread of an interpreter to process
         the callback script instead of the interpreter itself, which provides
         a bit more control over callback script thread affinity.

FEATURE: add IsDisposed property to the IScriptThread interface.

FEATURE: add IHaveOwner interface and implement it in the Interpreter class.

FEATURE: add the IsAdministrator, GetGreatestMaxKeySizeAndLeastMinBlockSize,
         IsFlagsEnum, UnsetEnvironmentVariable, IsCrossAppDomainNoIsolated, and
         CreateTemporaryScriptFile methods to the Utility class.

FEATURE: add experimental support for the new operators from TIP #461.

FEATURE: add experimental support for [regsub -command] option from TIP #463.

FEATURE: add -verbatim option to the [regsub] command, pursuant to improving
         the functionality added by TIP #463.

FEATURE: add experimental support for commands that correspond to the built-in
         operators and functions, placed in the tcl::mathop and tcl::mathfunc
         namespaces, respectively.

FEATURE: give the ternary conditional operator an implementation that is usable
         outside of the sub-expression evaluator.

FEATURE: add experimental support for using AppSettings to configure command
         line arguments to the shell.  also, add the NoAppSettings environment
         variable and the -noAppSettings command line option to skip processing
         of any arguments from the AppSettings.

FEATURE: in the subSpec argument to [regsub], support the \M# sequence to refer
         to the Nth parenthesized subexpression, for all cases, even when N is
         greater than or equal to 10.

FEATURE: in the subSpec argument to [regsub], support the \N<grpName> sequence
         in order to refer to the specified named parenthesized subexpression.

FEATURE: *BREAKING CHANGE* the result value from the [file rights] sub-command
         is now a list of flag names and/or integer values.

************************* Beta 1.0.6234.51946 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #150790 to #159986.

BUGFIX: the [string is boolean] sub-command should not accept integers other
        than 0 and 1 (COMPAT: Tcl).

BUGFIX: correct handling of the null opaque object handle by the script library
        procedure getStringFromObjectHandle.

BUGFIX: fix incorrect usage of cacheFlags field in the ClearCaches method.

BUGFIX: fix PGP signature file extension handling in the release preparation
        tool.

BUGFIX: fix duplicate entries in the hash.txt file generated by the release
        preparation tool.

BUGFIX: the MergeCommands plugin flag must be taken into account when moving
        exposed and hidden commands.

BUGFIX: the auto-path trace callback should handle a null value gracefully, by
        simply doing nothing.

BUGFIX: make sure all release binaries include Authenticode signatures that can
        be verifed and trusted on Windows XP.

BUGFIX: when a "safe" interpreter is initialized with init.eagle, make sure the
        [unknown] procedure does not use the [appendArgs] procedure, because it
        may not be available.

BUGFIX: deleting the global namespace in a "safe" interpreter should not cause
        hidden commands to become unusable.

BUGFIX: fix several corner cases in the method overload reordering logic.  type
        depths were not always being calculated correctly.  also, the comparer
        used for sorting the method overloads did not handle ties correctly.

BUGFIX: avoid possible unchecked recursion in Variable and TraceInfo classes by
        skipping the ToString method calls from within the GetStringFromObject
        helper method.

BUGFIX: in the Eagle Native Package for Tcl (Garuda), reset the bBridgeStarted
        flag when the [garuda clrstop] sub-command is called.

BUGFIX: fix typo in the error parameter value for the RemoveCommand call in the
        NamespaceOps.ChangeCommand method.

BUGFIX: when ComplainViaTest is invoked, ignore readiness levels if the target
        interpreter is the first interpreter.  furthermore, do not consider an
        interpreter usable if the needed command or channel are missing.

BUGFIX: avoid calling GetLastError for zero return values from GetStdHandle.

BUGFIX: test constraints should be cached in the test_constraints variable for
        use by non-primary threads, e.g. the [memoryThreadStart] procedure in
        the benchmark.eagle test file.

REFACTOR: make sure that Win32 API errors returned from the NativeConsole class
          to the Console host are reported via the complaint subsystem.

REFACTOR: cleanup interpreter host terminology used in the help text.

REFACTOR: eliminate use of the generic IHost interface from the HelpOps class.

REFACTOR: in the Eagle Native Package for Tcl (Garuda), enable logging for the
          LoadAndStartTheClr and StopAndReleaseTheClr functions when they are
          called from within the [garuda] command implementation.

REFACTOR: update Fossil tool w/source to version 1.37.

REFACTOR: modify the ClearCaches method to include the miscellaneous internal
          caches.

REFACTOR: change _Comparers.FileName constructors to private, add static Create
          method, and add cache for its instances based on the path comparison
          type type.

REFACTOR: add Debugger value to the PluginFlags attribute for the core plugin.

REFACTOR: introduce the GetObjectsForTrace method for use by the object trace
          callback in order to make tracking opaque object handles faster.

REFACTOR: restore core marshaller support for binders that are not completely
          compatible with the semantics for the IScriptBinder interface.

REFACTOR: error messages from the core marshaller should not contain literal
          double-quotes; instead, they should use the WrapOrNull method.

REFACTOR: remove the read-only restriction for all remaining option value flag
          fields in the ObjectOps class.

REFACTOR: work around a Mono bug involving the use of empty strings with one of
          the two parameter LastIndexOf method overloads.

REFACTOR: *SECURITY* when creating a "safe" interpreter, set the auto-path to a
          null value.  previously, the auto-path was not set, making the use of
          packages impractical.

REFACTOR: *BREAKING CHANGE* change the [debug collect] sub-command so that it
          takes a GarbageFlags value as its only optional argument.

REFACTOR: *BREAKING CHANGE* mark the -kind option to the [rename] command as
          unsafe and add support for hidden commands, procedures, and executes.

REFACTOR: *BREAKING CHANGE* add an OptionDictionary parameter to the minimal
          FixupReturnValue method overload of the Utility class.

REFACTOR: *BREAKING CHANGE* break out appropriate IHost methods into the new
          IBoxHost, IColorHost, IPositionHost, and ISizeHost interfaces.

REFACTOR: *BREAKING CHANGE* add a MarshalFlagsList parameter to the
          SelectMethodIndex method of the IScriptBinder interface.

FEATURE: add -parametermarshalflags option to all the core marshaller related
         sub-commands (e.g. [object invoke], et al).  if present, the marshal
         flags used to process a parameter will gain the marshal flags in the
         list at the same index.

FEATURE: add support for option values containing a list of enumerated values.

FEATURE: add WrapHandle method to the Utility class.

FEATURE: add ControlCaches method to the ICacheManager interface.

FEATURE: add ListVariables method to the IVariableManager interface.

FEATURE: add MakeProcedureNonCaching method to the IEntityManager interface and
         make the necessary script engine changes to support it.

FEATURE: add NoMutexes environment variable.  when set, the mutexes checked by
         the setup packages will not be created or opened.

FEATURE: keep track of the data used to find each native Tcl library and return
         it with the other Tcl build information.

FEATURE: add UseArgumentCounts method overload reordering flag.  when used, it
         will cause the supplied argument counts to be taked into account when
         figuring out the effective parameter counts for a method overload.

FEATURE: add UseParameterTypes method overload reordering flag.  when used, it
         will cause the parameter type to be taken into account instead of the
         argument type, when appropriate.

FEATURE: add TraceResults method overload reordering flag.  when used, it will
         cause the resulting sorted list of method overloads to be emitted via
         the tracing subsystem.

FEATURE: add full support for IPlugin and IExecute option types.

FEATURE: add the -hidden option to the [rename] command.

FEATURE: upgrade to a fully trusted SSL certificate for *.eagle.to.

FEATURE: add -chained and -lastresult options to [object invokeall] sub-command
         to allow method invocations after the initial one to use the resulting
         opaque object handle from the previous method invocation.

FEATURE: enhance integration with the CLR garbage collector to enable the large
         object heap to be compacted when possible and seemingly necessary.

FEATURE: add alternate name for the Eagle Package for Tcl (Garuda).  when the
         package is loaded via the alternate name, it skips starting the CLR
         and setting up the bridge to the Eagle core library.

FEATURE: add the loadClr configuration parameter to the Eagle Package for Tcl
         (Garuda).  when non-zero (which is the legacy default), the CLR will
         be loaded as soon as the package is loaded; otherwise, it will need
         to be manually started via the new [garuda clrload] sub-command.

FEATURE: add [info windowtext] sub-command to return the text for a native
         window handle, if any.

FEATURE: add -datetimekind option to the [sql execute] sub-command.

FEATURE: add -datetimekind and -datetimeformat options to the [object invoke]
         sub-command and all related sub-commands.  they are used to override
         the default values provided to the core marshaller by the DateTimeKind
         and DateTimeFormat properties of the interpreter.

FEATURE: add boolean -file option to the [debug secureeval] sub-command.

FEATURE: add -unsafeinitialize option to the [interp create] sub-command.

************************* Beta 1.0.6120.16902 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #147964 to #147966.

BUGFIX: make [file split] and [file join] work for Unix-style absolute paths.

BUGFIX: when matching sub-commands in "safe" interpreters, do not match against
        "unsafe" sub-commands that happen to share the same prefix.

BUGFIX: using the Free method on a disposed CallFrame object should not raise
        an InterpreterDisposedException.

BUGFIX: only interpreter readiness check related script debugger breakpoints
        should be skipped when the exiting-from-debugger flag is set.

REFACTOR: break the web related methods out of the SocketOps class into the new
          WebOps class.

REFACTOR: improve handling of errors encountered by the TclWrapper class when
          searching for candidate Tcl builds.

REFACTOR: make sure that all applicable URLs present in the source tree are now
          HTTPS.

REFACTOR: significant improvements to the getEagle.tcl tool, mostly related to
          HTTPS and redirection handling.

REFACTOR: make it possible to bypass the normal DebugTrace handling that deals
          with formatting and category checks.  this helps minimize the runtime
          impact of using a trace-enabled build configuration.

REFACTOR: *BREAKING CHANGE* add InterpreterFlags property to the IScriptThread
          interface.

REFACTOR: *BREAKING CHANGE* add InterpreterFlags parameter to various Create
          method overloads of the Interpreter class.

REFACTOR: *BREAKING CHANGE* enable use of namespaces by default in all released
          build configurations.

FEATURE: add optional boolean argument to the [uri softwareupdates] sub-command
         to control whether the software updates SSL certificate is exclusively
         trusted.

FEATURE: add the IsSoftwareUpdateExclusive, SetSoftwareUpdateExclusive, and
         IsWebUri methods to the Utility class.

FEATURE: add the other overload of the IsRemoteUri method to the Utility class.

FEATURE: add the DefaultValue callback flag to force the default value for the
         return type to be used when returning the value from dynamic callback
         methods.  the ReturnValue callback flag is also required.

************************* Beta 1.0.6119.57133 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #133453 to #144055.

BUGFIX: fix namespace prefix removal handling for the [debug procedureflags],
        [info args], [info body], [info default], [info subcommands], and
        [interp subcommand] sub-commands.

BUGFIX: all aliases must be resolved in the global namespace.

BUGFIX: when the core marshaller uses a null variable value to create an array
        reference, it should undo that operation, if appropriate, when fixing
        up the ByRef arguments from the managed method.

BUGFIX: null variable values (i.e. not just a variable with the literal string
        value "null") are always allowed to act as the basis for managed array
        references, for both input and output parameters.

BUGFIX: the [checkForTestCallStack] test suite constraint check procedure must
        take the [runTestPrologue] test package procedure into account.

BUGFIX: when a custom library path has been set for the interpreter, make sure
        to check for the directory name portion of the core script library and
        remove it as necessary when building the host package index file name.

BUGFIX: rewrite the remoting server tests so they work independently.

BUGFIX: avoid running tests that download scripts when security is enabled for
        the interpreter.

BUGFIX: only reset the location FindFlags when a specific path is specified for
        the [tcl load] sub-command.

BUGFIX: prevent access violations when using the native Tcl [exit] command from
        an interpreter containing the Eagle Native Package for Tcl (Garuda).

BUGFIX: avoid creating a new dynamic delegate in CommandCallback when one with
        the same return type and parameter types was created previously.

BUGFIX: prevent unchecked recursion in the interactive loop due to the script
        cancellation flags being set when checking for complete interactive
        input.

BUGFIX: stop triggering script debugger breakpoints upon exit from interactive
        loop instances triggered by script debugger breakpoints.

BUGFIX: forbid all script debugger breakpoints when invoking the configured
        interactive command callback.

BUGFIX: do not hard-code the "synchronous" object disposal parameter; instead,
        use either the ObjectOps.GetDefaultSynchronous method -OR- the value
        of the -synchronous option, depending on context.  add -synchronous
        option to the [object foreach] sub-command.

BUGFIX: make NativeOps class tolerant of missing dlopen, dlsym, dlclose, and
        dlerror delegates on Unix.

BUGFIX: the IsSupported method of the Argument and Result classes should return
        true for the CommandBuilder and Interpreter types.

BUGFIX: for [interp create -safe], make sure the safe.eagle script is evaluated
        instead of the init.eagle script.

BUGFIX: *BREAKING CHANGE* when evaluating the package index file from the host,
        set the "dir" variable to the directory name portion of the file name,
        e.g. "lib/Eagle1.0".

REFACTOR: improve Eagle Native Package for Tcl (Garuda) support for deployments
          that use parallel native Tcl and Eagle directories.

REFACTOR: stop treating Argument objects as mutable, e.g. the name and flags
          properties, from the procedure argument list creation code.

REFACTOR: add preliminary support for the .NET Framework 4.6.2.

REFACTOR: cleanup the NativeOps class to make things more consistent and group
          related methods together.  also, internalize error handling for the
          public Windows-only abstraction methods.

REFACTOR: using an extra two "#" characters in front an interactive command can
          now be used to temporarily bypass the interactive command callback.

REFACTOR: when the PathOps.Search method returns a successful result, it should
          make sure it contains only native directory separators.

REFACTOR: retry attempts to fetch the interactive host from the interpreter if
          the interpreter lock cannot be immediately obtained.

REFACTOR: enhance the test suite infrastructure and several tests to improve
          correctness and robustness when running on Mono 4.4.

REFACTOR: add the SkipTestsToLib script flag.  when disabled (which is the
          default), the core host searches additional candidate script paths,
          specifically those ending with "Tests/${fileName}" in addition to
          those ending with "lib/Tests/${fileName}".

REFACTOR: clarify and cleanup the GetFile, GetLibrary, and GetStartup methods
          of the ScriptOps class.  add the GetLibraryFile method to simplify
          some of the code reuse.

REFACTOR: add License value to the PolicyType enumeration.

REFACTOR: add the NoLoadKeyRings, IgnoreKeyRingError, ExplicitOnly, and
          PreferEmbedded values to the ExecutionPolicy enumeration.

REFACTOR: update the URI used to interface with SymbolSource.org.

REFACTOR: add tests for the [debug lockprocs] sub-command.

REFACTOR: add the purpose-built TestSetPluginIsolation method.

REFACTOR: add FindFlags.OverwriteBuilds flag to support later phases replacing
          Tcl builds found in earlier phases.

REFACTOR: improve threaded-by-default detection for native Tcl libraries that
          are detected by means other than the registry.

REFACTOR: add overload of the TryLock method with a milliseconds parameter to
          the ISynchronize interface.

REFACTOR: rework how the core library plugin creation is handled.

REFACTOR: revise cache configuration subsystem to keep track of how many times
          each cached item is accessed.  during trimming, remove only the items
          that fall below the threshold, which is dynamically adjusted based on
          memory pressure.  keep track of how long trimming operations take.

REFACTOR: allow the cache configuration subsystem to disable a cache if items
          are added and/or removed too frequently.  by default, the cache will
          be re-enabled after 30 seconds.

REFACTOR: when setting procedure arguments, use the actual Argument objects,
          including the for special "args" argument, which is preserved as an
          ArgumentList object.

REFACTOR: make sure all plugin-based packages have the Plugin package flag and
          the Core package flag for those defined by the core library.

REFACTOR: implement the IGetValue interface in the Number, Variant, StringList,
          StringPairList, and ArgumentList classes.  implement the ISetValue
          interface in the Number and Variant classes.

REFACTOR: keep track of whether a StringList was created as read-only, via the
          new IReadOnly interface.  modifying a read-only StringList will not
          throw an exception; however, it is considered a programming error.

REFACTOR: move the most commonly used core script library procedures out of the
          init.eagle into the separate files auxiliary.eagle, file1.eagle, and
          platform.eagle.  move various other support procedures to the files
          compat.eagle, csharp.eagle, database.eagle, exec.eagle file2.eagle,
          file3.eagle, info.eagle, list.eagle, object.eagle, process.eagle,
          runopt.eagle, shim.eagle, testlog.eagle, and unkobj.eagle.  move
          update checking support procedures to the file update.eagle.

REFACTOR: *BREAKING CHANGE* add ClearTrace environment variable to clear trace
          listeners during the startup process, which replaces that use of the
          NoTrace environment variable, which is now only used to disable core
          library tracing.

REFACTOR: *BREAKING CHANGE* rename Trace environment variable to SetupTrace.

REFACTOR: *BREAKING CHANGE* rename the -noTrace command line option to
          -clearTrace and the -trace command line option to -setupTrace.

REFACTOR: *BREAKING CHANGE* modify the LoadSettingsViaScriptFile method so that
          it accepts a ScriptDataFlags parameter instead of a boolean.

REFACTOR: *BREAKING CHANGE* forbid setting the Name, Flags, Default, FileName,
          StartLine, and EndLine properties of an Argument object.

REFACTOR: *BREAKING CHANGE* for the IEntityManager.AddOrUpdateProcedure method,
          change the arguments parameter to an ArgumentList.

REFACTOR: *BREAKING CHANGE* replace the ModuleFlags.Locked value with two new
          values, ModuleFlags.NoUnload and ModuleFlags.NoRemove.

REFACTOR: *BREAKING CHANGE* stop collecting garbage by default when an opaque
          object handle is removed from the interpreter.

REFACTOR: *BREAKING CHANGE* add overloads for the IEntityManager.RemoveObject
          and IInterpreterManager.RemoveChildInterpreter methods that do not
          require a "synchronous" parameter.

REFACTOR: *BREAKING CHANGE* aggressively cache Argument objects, especially
          those created by the script engine.  this has the potential to slow
          down certain scripts; therefore, it can be easily disabled at
          compile-time or runtime.

REFACTOR: *BREAKING CHANGE* rename the -flags option to the [parse command],
          [parse expression], and [parse script] sub-commands to
          -substitutionflags.

REFACTOR: *BREAKING CHANGE* add an engine flags parameter to all the ParseState
          constructors and the methods Parser.IsComplete and Parser.ParseScript.

REFACTOR: *BREAKING CHANGE* modify the NewWebClientCallback delegate to add an
          error output parameter.

REFACTOR: *BREAKING CHANGE* add the NoPluginResourceName and NoRawResourceName
          script flags and use them to prevent calls into the IPlugin.GetString
          method for the associated resource name.

REFACTOR: *BREAKING CHANGE* add the NoGetString plugin flag and use it to stop
          all calls into the IPlugin.GetString method by the core host.

REFACTOR: *BREAKING CHANGE* add string name parameter to the TestScriptStream
          method.

REFACTOR: *BREAKING CHANGE* add SetSecurityWasEnabled method to the
          ISecurityManager interface.

REFACTOR: *BREAKING CHANGE* the MonoOnUnix build type now defaults to targeting
          the .NET Framework 4.0.

REFACTOR: *BREAKING CHANGE* add boolean parameter to the ClearCaches method of
          the ICacheManager interface.

REFACTOR: *BREAKING CHANGE* move the InteractiveLoop method from IShellCallback
          interface to the new IInteractiveLoopCallback interface.

FEATURE: add -withinfo option to the [source] command to preserve the location
         information for procedures defined in the specified script file.

FEATURE: add PeerPath value to the FindFlags enumeration.  when set, it will
         cause the TclWrapper class to search for native Tcl libraries within a
         directory named "Tcl" that is a peer of the Eagle base directory (e.g.
         normally named "Eagle").

FEATURE: add PackageFallback property to the IInterpreter interface.  when set,
         it will be used to help locate a package prior to the PackageUnknown
         script being evaluated.

FEATURE: add the [string is command] sub-command to check if a string refers to
         an existing command.

FEATURE: add the [string is array], [string is element], and [string is scalar]
         sub-commands to check if a string is the name of an existing array
         variable, array element, or scalar variable, respectively.

FEATURE: add -nullvalue option to the [sql execute] sub-command.

FEATURE: add AreCachesEnabled and EnableCaches methods to the ICacheManager
         interface.

FEATURE: add TrustedOnly value to the FindFlags enumeration.  using this flag
         prevents any unsigned native Tcl libraries from being loaded.

FEATURE: add the ToPairs method to the StringDictionary class.

FEATURE: add an overload of the SetEnvironmentVariable method to the Utility
         class.

FEATURE: add FormatTraceException, BeginWithAutoPath, EndWithAutoPath, and
         GetScriptPath methods to the Utility class.  also, add HasFlags method
         overload to the Utility class that accepts ExecutionPolicy parameters.

FEATURE: add [object addref] and [object removeref] sub-commands.

FEATURE: add [info ppid] sub-command to return the Id of the parent process.

FEATURE: add FromString static factory methods to the StringDictionary class.

FEATURE: make physical memory reporting work under Mono on Unix, including the
         [debug memory] sub-command and the cache configuration subsystem.

FEATURE: fully populate tcl_platform array under Mono on Unix, including the
         processor name, operating system name, and related information.

FEATURE: attempt to search for native Tcl libraries in library sub-directories
         decorated with the processor name and the literal suffix "-linux-gnu"
         when running under Mono on Unix.

FEATURE: add the -dequote option to the [exec] command, which can only be used
         with the -commandline option, to remove outer double quotes from each
         argument prior to building the final command line.

FEATURE: *BREAKING CHANGE* make the [debug undelete] sub-command undelete all
         variables matching the specified pattern.

FEATURE: *BREAKING CHANGE* add Resolve property to the INamespaceData interface
         and use it to support per-namespace resolvers.

FEATURE: *BREAKING CHANGE* add LookupNamespace and CreateNamespace methods to
         the IEntityManager interface.

************************* Beta 1.0.6018.45959 RELEASE *************************

BUGFIX: fix and/or address Coverity issues from #83070 to #116948.

BUGFIX: in the core marshaller, when a default value is used for an optional
        output parameter, its value cannot be marshalled back to the script,
        because no variable name is available.

BUGFIX: honor UTF-8, UTF-16, and UTF-32 byte-order-marks that may be present in
        a script file.

BUGFIX: the [namespace eval] and [namespace inscope] sub-commands should avoid
        accessing properties of a potentially disposed namespaces after script
        evaluation.

BUGFIX: the hiding and unhiding of commands and procedures performed by the
        Interpreter.MakeSafe and Interpreter.MakeStandard methods should be
        undoable.

BUGFIX: all references to non-global namespaces should be removed from the call
        stack when they are deleted.

BUGFIX: take care to avoid calling the GetImport method on imported namespaces
        that may have been disposed (e.g. in the NamespaceOps.Origin method).

BUGFIX: clear the list of imports when a Namespace is being disposed.

BUGFIX: never allow a namespace to be returned from the NamespaceOps.GetCurrent
        method if it has been disposed.

BUGFIX: there must be a way to instruct the PopulatePluginCommands method to
        skip over selected third-party commands; otherwise, the policy engine
        cannot filter sub-commands properly.  this can now be accomplished by
        setting the new NoPopulate flag on the command itself.

BUGFIX: fix unsignedness wide integer boundary conditions with the [format]
        command.

BUGFIX: make sure the base resource name matches the simple assembly name.

BUGFIX: dispose of plugins after the commands and other entities that they may
        contain.  this is important for plugins that are loaded into isolated
        application domains.

BUGFIX: avoid throwing AppDomainUnloadedException while disposing interpreters
        due to accessing plugin flags.

BUGFIX: the RemoveCommands method must make sure that any plugin commands that
        may be hidden are removed as well.

BUGFIX: fix cross-AppDomain detection for locked interpreters (i.e. it must be
        assumed they are cross-AppDomain).

BUGFIX: make sure to unload plugins if their IState.Initialize methods fail.

BUGFIX: fix bad handling of the MarkTrusted flag by the EvaluateTrustedScript,
        EvaluateTrustedFile, and EvaluateTrustedStream methods.

BUGFIX: for the setup, when installing the Visual C++ runtimes, check for the
        return code that indicates a newer version is already installed.

BUGFIX: stop previously defined variables from being considered "dirty" by the
        [vwait] command when waiting on an array element.

BUGFIX: make sure that [uplevel] and [downlevel] use the namespace context of
        the other frame, not the current frame.

BUGFIX: display the element values for the lowMemoryWarning and okMemoryWarning
        static array fields of the CacheConfiguration class.

BUGFIX: hold the interpreter lock when dealing with the eventManager field in
        the GetHostEntityInfo method.

BUGFIX: the TestDisposedWriteHeader method requires the INTERACTIVE_COMMANDS
        compile-time option.

BUGFIX: when no(knownCompileOptions) is set, the compile-time options actually
        used by the test suite still need to be checked.

BUGFIX: when processing a command callback, use a try/finally to help make sure
        the MaybeDisposeThread method is called.

BUGFIX: the InterpreterHelper created by the test xaml-1.2 should be marked as
        AutoDispose.

REFACTOR: improve robustness of test debug-2.1.

REFACTOR: extract in-use namespace detection logic from the CanRenameNamespace
          and CanDeleteNamespace methods into a new IsNamespaceInUse method.

REFACTOR: tighten up result handling for GetPluginCommands.

REFACTOR: all external IEnsemble.SubCommands properties should be read-write.

REFACTOR: improve cross-AppDomain detection for all IThreadHost objects used by
          the Engine class.

REFACTOR: make the [loadWordTcl] script library procedure capable of using the
          configured script library directory as a fallback.

REFACTOR: use the CommonOps.Environment.DoesVariableExist method everywhere the
          environment variable value is not used.

REFACTOR: add the GlobalState.DoesEnvironmentVariableExist method and use it
          everywhere the environment variable value is not used.

REFACTOR: keep track of the first interpreter created on a per-AppDomain basis.

REFACTOR: add Interpreter property to the ITestContext interface and use it to
          temporary link an isolated test interpreter to its parent.

REFACTOR: rename the InteractiveLoops property to ActiveInteractiveLoops.  add
          TotalInteractiveLoops property to the IInteractiveContext.

REFACTOR: add Loops property to the IDebuggerData interface.  add EnterLoop and
          ExitLoop methods to the IDebugger interface.

REFACTOR: make the PathOps.LibraryToLib method enable its special handling for
          path names of the form "Library/Tests/${dirName}/${fileName}", where
          "${dirName}" must be "data" or "tcl".

REFACTOR: update Fossil tool w/source to version 1.35.

REFACTOR: *BREAKING CHANGE* modify the parameters for the FindPlugin method of
          the IPluginManager interface to support pattern matching.

REFACTOR: *BREAKING CHANGE* make the boolean parameter to the IsThrowOnDisposed
          method nullable.  when null, it will assume the value of true only if
          the interpreter parameter is valid.

REFACTOR: *BREAKING CHANGE* move all ShellMainCore delegate parameters into the
          new class ShellCallbackData.

REFACTOR: *BREAKING CHANGE* revise the public InteractiveLoop method overloads
          exposed by the Interpreter class.  the InteractiveLoopData class has
          been added to facilitate passing all the necessary data.

REFACTOR: *BREAKING CHANGE* rename protected properties ResourceBaseName and
          CoreResourceManager of the core host to LibraryResourceBaseName and
          LibraryResourceManager, respectively.  also, add protected properties
          ApplicationResourceBaseName and ApplicationResourceManager.

REFACTOR: *BREAKING CHANGE* add implicit conversions from Interpreter to both
          Argument and Result.

REFACTOR: *BREAKING CHANGE* revise complaint handling to include a way that can
          be logged via the test suite.

REFACTOR: *BREAKING CHANGE* require all "stateful" objects to be terminated,
          disposed, closed, or unloaded prior to them being removed from their
          associated collection during disposal and complain if any of these
          objects are ever leftover.

REFACTOR: *BREAKING CHANGE* improve cross-AppDomain detection for all IPlugin
          objects.  also, add new overload for the Utility.IsCrossAppDomain
          method where an IPlugin object is the only parameter.

REFACTOR: *BREAKING CHANGE* rename CheckForOption method to CheckOptions and
          modify it to accept an OptionDictionary instead of a single IOption.

REFACTOR: *BREAKING CHANGE* use a DetailFlags parameter to the ToString and
          ToList methods of the ICallFrame interface.

REFACTOR: *BREAKING CHANGE* add a DetailFlags parameter to the IHost.QueryState
          method.

REFACTOR: *BREAKING CHANGE* revise the IInformationHost interface to remove all
          boolean parameters related to content inclusion and replace them with
          a single DetailFlags parameter.

FEATURE: add -nobyref option to [object create], [object invoke], and related
         commands that use FixupByRefArguments.

FEATURE: add Vendor to the [info engine] sub-command.

FEATURE: add ShellCallbackBridge class to permit cross-domain customization of
         the default shell.

FEATURE: add the ThrowOnError callback flag to force a ScriptException to be
         thrown if an error is encountered during command callback processing.

FEATURE: add -security command line option to enable or disable script signing
         policies and core script certificates for the interpreter, using the
         Harpy and Badge plugins.

FEATURE: add -recreate command line option to force the shell interpreter to be
         recreated, based on the existing settings.

FEATURE: add -anyFile command line option to evaluate a file whether or not the
         script library has been initialized.

FEATURE: add NoExit environment variable.  when set, the core interpreter host
         will deny requests to exit.

FEATURE: add NoConsoleSetup environment variable.  when set, the console host
         will not setup the console window.

FEATURE: add support for Byte and SByte option values.

FEATURE: permit the dedicated test plugin to be included for the Release build
         configuration using the new TEST_PLUGIN compile-time option.

FEATURE: add static NewInterpreterCallback property to the Interpreter class.

FEATURE: add TryStaticLock and ExitStaticLock static methods to the Interpreter
         class.

FEATURE: add GetBytesFromString, GetOriginalLocalPath, IsTransparentProxy,
         IsSameAppDomain, and HashScriptFile methods to the Utility class.

FEATURE: improve integration with the commercial Harpy plugin.  also, add it to
         the setup and the release process.

FEATURE: add the IsSameAssemblyName method to the Utility class.

FEATURE: add the InterpreterObjectDictionary public container class.

FEATURE: add the MarshalFlags.UseInOnly and MarshalFlags.UseByRefOnly values to
         enable stricter handling of parameter direction during method overload
         resolution.

FEATURE: add the GetFirst static method to the Interpreter class to return the
         first interpreter created in the application domain.

FEATURE: support reading the command line arguments file from the interpreter
         host.  also, support embedding it within the core library assembly.

FEATURE: add -security and -nosecurity options to [interp create] sub-command.

FEATURE: add -noSecurity and -isolationFileName options to the [test2] command.

FEATURE: *BREAKING CHANGE* add InteractiveCommandCallback property to the
         IInteractiveManager interface.

FEATURE: *BREAKING CHANGE* add PostInitialize method to the IPlugin interface.

FEATURE: *BREAKING CHANGE* add protected GetScriptViaAssemblyManifest method to
         the core host to enable user-defined scripts to be embedded within the
         core library assembly (i.e. any that are not part of the embedded core
         script library).

FEATURE: *BREAKING CHANGE* add an overload of the IEntityManager.GetPlugin
         method that accepts an AssemblyName parameter.

FEATURE: *BREAKING CHANGE* add TrustedUris property to the ISecurityManager
         interface.

FEATURE: *BREAKING CHANGE* add Interpreter and IClientData parameters, both of
         which may be null, to the Utility.LoadSettingsViaScriptFile method.

FEATURE: *BREAKING CHANGE* add overloads for the DoOneEvent, ProcessEvents, and
         ServiceEvents methods of the IEventManager interface that take a count
         input/output parameter.

FEATURE: *BREAKING CHANGE* add a CreateChildInterpreter method overload to the
         IInterpreterManager interface.

FEATURE: *BREAKING CHANGE* add boolean parameter to the CreateChildInterpreter
         method.

************************* Beta 1.0.5934.21851 RELEASE *************************

BUGFIX: *MAJOR* setting, unsetting, and resetting a variable should mark its
        associated link, if any, as defined.  before this fix, using [variable]
        or [global] and then trying to set, unset, and finally set a variable
        again through a link would not work properly.

BUGFIX: the sub-commands [object alias], [object get], [object members], and
        [object search] must support the -objecttypes option.

BUGFIX: make handling of Fossil command results more robust when dealing with
        whitespace.  also, always check for the Fossil checkout and tags, even
        when running in native Tcl.

BUGFIX: automatic scope names created using [scope create -procedure] need to
        be shared, by default, only with lambda procedures that have the same
        arguments and body.

BUGFIX: enumeration values that fit into an unsigned integer cannot necessarily
        be treated as unsigned long integers.

BUGFIX: prevent [file rootname] from changing the directory separators as long
        as the original ones are consistent.

BUGFIX: the second operand for the bitwise shift / rotate operators must be an
        integer.

BUGFIX: push the IScriptLocation for an IScript when the associated interpreter
        EvaluateScript method overloads are used.

BUGFIX: the console host needs to reference count among all application domains
        when checking if the per-process actions performed in the Setup method
        should be done or undone.

BUGFIX: specifying the name and value to the [variable] command in a procedure
        call frame should not raise an error.

BUGFIX: fix and/or address Coverity issues from #48139 to #76253.

BUGFIX: deleting native Tcl threads via the ITclEntityManager.DeleteTclThread
        method should call Dispose on them as well.

BUGFIX: make the [info commands] and [info procs] sub-commands work right when
        the current namespace is not global and the pattern lacks qualifiers.

BUGFIX: scripts queued via [after] must be evaluated in the global namespace,
        even when they are processed via a [vwait] that happens to be running
        inside of a procedure defined within a non-global namespace.

BUGFIX: prevent the ChannelStream line-translation handling from attempting to
        access out-of-bounds array elements when dealing with oversize console
        writes.

BUGFIX: prevent some [socket -server] errors, e.g. duplicate port usage, from
        going undetected.

BUGFIX: correct core marshaller handling of null values of reference types when
        they are returned from the script binder.

BUGFIX: for [info sharedlibextension], stop assuming the core library assembly
        has a dynamic link library file extension.

BUGFIX: fix core event manager handling of the Continue return code.

BUGFIX: fix nondeterministic ordering when using the ScriptBuilder class.

BUGFIX: reset the Exiting property of the host to false in DisposeHost if the
        host is not actually being disposed.  also, use the same handling for
        the isolated host, if any, as well.

BUGFIX: the Default classes for the IProcedure and IResolve interfaces should
        derive from the ScriptMarshalByRefObject class.

BUGFIX: correct the microseconds calculation used for the [clock microseconds]
        sub-command.

BUGFIX: on Windows, attempt to avoid running out of memory while caching things
        by checking the current memory load against a defined limit.

BUGFIX: the release preparation tool must fallback to using any suitable build
        output directory (and associated shell) for evaluating scripts needed
        during processing.  it should not simply assume that the NetFx20 build
        is available.

BUGFIX: the [downlevel] command should have the NonStandard attribute, not the
        Standard attribute.

BUGFIX: the release preparation tool should not assume it can always query the
        Garuda patch level from the NetFx40 build.

BUGFIX: if the value of eagle_platform(updatePathAndQuery) is changed, the new
        value must be passed to the updater tool, if it ends up being run.

BUGFIX: when the -repeatCount option to [test2] is used, make sure all the test
        counts are still accurate.

BUGFIX: if the NativeUtility.JoinList method fails for any reason (e.g. out of
        memory, etc), fallback to the pure managed method instead of returning
        a null result.

BUGFIX: rework how new Version objects are created when one or more parts may
        not be present.

BUGFIX: skip disposing the isolated interpreter host if it was the same as the
        normal interpreter host (i.e. because it has already been disposed).

BUGFIX: dynamically adjust number of interactive help columns to accommodate
        long interactive command names.

BUGFIX: make sure that plugin policies found within plugins actually get loaded
        and called.

BUGFIX: harden the standard channel replacement logic to prevent exceptions in
        the channel Dispose methods from leaving the stale channels in place.

BUGFIX: when the TraceOps.DebugTrace method is called, skip over the Utility
        class (and methods named DebugTrace from any class) when figuring out
        the method name to use in the actual trace output.

BUGFIX: only restore the interrupt callback if it was not changed while being
        fired.

BUGFIX: do not attempt to transfer any dead native Tcl objects to any "safe"
        interpreter (i.e. even those not created via [interp create]).

BUGFIX: avoid copying list results in the Parser.SplitList when the list cache
        has been disabled or when the list will not actually be used.

BUGFIX: catch any exceptions thrown from partially created interpreters being
        disposed within the Interpreter.Create method.

BUGFIX: correct unsigned type handling in AppDomainOps.GetEnumOptionFlags.

BUGFIX: correct unsigned wide integer handling in the ToUnsignedWideInteger
        method of the ConversionOps.Dynamic.ChangeType class.

BUGFIX: any EnsembleDictionary instance used by any ensemble command to track
        its list of sub-commands should not be static.

BUGFIX: when matching commands, do not count any trailing namespace delimiters
        as part of the command name prefix being matched.

BUGFIX: avoid race-conditions in the CommandCallback class with respect to the
        privately held interpreter reference.

BUGFIX: revise semantics of _Hosts.Default.WriteCore to prevent stray lines of
        color when writing past the screen buffer.

BUGFIX: the default native utility library file name should be based on the
        assembly path, not the binary path.

BUGFIX: correct the spelling of "procedure" in several places in the default
        host class and some comments in other files.

BUGFIX: restore the console mode when the host is being disposed.

BUGFIX: all engine utility methods should use the InternalSyncRoot property of
        the interpreter and should check for usability within the lock.

BUGFIX: return Ok from the Engine.ResetErrorInformation method upon success.

BUGFIX: managed project files should not condition anything on the $(Platform)
        macro.

BUGFIX: revise AppDomain handling to make sure that loading the core library
        into a non-default AppDomain works correctly with isolated plugins.

BUGFIX: *PERF* do not reuse the minimum cache item count as the minimum number
        of cache items to be removed at one time.  in some circumstances, this
        was preventing the cache from being properly trimmed until it reached
        150% of its configured maximum capacity.

BUGFIX: *SECURITY* in the [ensemble] abstract command, use the entity execution
        wrapper provided by the interpreter so that hidden commands are handled
        correctly.

BUGFIX: *BREAKING CHANGE* fix opaque object handle naming when an explicit name
        is specified in the call (i.e. it must be honored).

BUGFIX: *BREAKING CHANGE* add boolean OwnArguments property to the ICallFrame
        interface and use it to determine if the argument list can be cleared
        upon disposal of the call frame.  this does not apply to the argument
        list containing the procedure arguments.

REFACTOR: use the value NoVerbose lookup flag wherever it is appropriate.

REFACTOR: minor cleanup of the NativeUtility.GetNativeLibraryFileName method.

REFACTOR: add bool strict parameter to the GetPlatformName, GetProcessorName,
          GetAlternateProcessorName, and GetOperatingSystemName methods.

REFACTOR: cleanup some files and code associated with the sample and/or example
          projects.

REFACTOR: simplify / clarify implementation of the ResultList.ToString method.

REFACTOR: use different EventWaitHandle objects for the idle event queue in the
          event manager.

REFACTOR: pass the ValueFlags.Unsigned flag when an unsigned value is requested
          from the Value class.

REFACTOR: cleanup and improve runtime options integration with both locking and
          notifications.

REFACTOR: remove unused internal and private methods from the Interpreter class
          that deal with the Channel class.

REFACTOR: move interactive #check command to the new "update" command group.

REFACTOR: remove hard-coded uses of double-quotes with String.Format within the
          HelpOps class.

REFACTOR: enhance handling of the in-use assembly file within the updater tool,
          allowing it to be deleted after the updater tool exits.

REFACTOR: rename CheckNotifications instance methods to CheckNotification.

REFACTOR: cleanup and modularize the Value.GetIndex method.  also, add flags to
          control various aspects of the conversion, including the new optional
          index bounds checking.

REFACTOR: in DebugTrace, emit the message if the category and/or method name
          matches one of the trace categories.

REFACTOR: add the SkipLibraryToLib script flag.  when disabled (which is the
          default), the core host searches additional candidate script paths,
          specifically those ending with "lib/Tests/${fileName}" in addition
          to those ending with "Library/Tests/${fileName}".

REFACTOR: add RestoreTracePlugin method to the IPluginManager interface.

REFACTOR: update Fossil tool w/source to version a9e3db1f707d4998.

REFACTOR: add overloads with boolean parameters for the methods WaitForStart,
          WaitForEnd, WaitForEmpty, and WaitForEvent of the IScriptThread
          interface.

REFACTOR: various improvements to the presentation of diagnostic version
          information.

REFACTOR: move cache settings management into the new CacheConfiguration class.
          add [debug cacheconfiguration] sub-command to forcibly reinitialize it
          with the specified settings -OR- to return its current settings.  the
          format of the string used to initialize the settings, as well as the
          meanings of the datums which are contained within it, is unspecified,
          undocumented, and subject to change at any time.

REFACTOR: add preliminary support for the .NET Framework 4.6.1.

REFACTOR: pass StringBuilder object to SetVariableValue2 in [append] instead of
          the Result object.

REFACTOR: add JustWait tool to pause the build process for the specified number
          of milliseconds between selected server operations (e.g. Authenticode
          timestamping).

REFACTOR: support nullable value types directly from the ConversionOps class.

REFACTOR: change the AllowMultiple property for the ObjectGroupAttribute class
          to true.

REFACTOR: add NoInitializeFlag and NoResult values to PluginFlags.  revise how
          the default plugin integration is handled in the test plugin.

REFACTOR: the tag-via-build tool should check for the PATCHLEVEL environment
          variable and use it instead of a calculated build number.

REFACTOR: *PERF* avoid allocating new argument lists within EvaluateScript.

REFACTOR: *PERF* reduce the memory consumption required to [vwait] on array
          elements.

REFACTOR: *PERF* speed up exact matching in SubCommandFromEnsemble.

REFACTOR: revamp all Authenticode signing build and release infrastructure to
          start the migration away from SHA1, see https://aka.ms/sha1 for more
          details.

REFACTOR: revise some tests to account for builds that cannot adjust the native
          stack size of the interactive shell executable.

REFACTOR: cleanup Engine and Interpreter class handling of the host field and
          Host property.

REFACTOR: add a manifest to the interactive shell executable so that it can get
          the real Windows version number.

REFACTOR: revise tests tclLoad-12.* to set the METHOD_PROTOCOL_V1R2 flag unless
          forbidden from doing so.

REFACTOR: when using [info vars] in non-local namespace call frames, the global
          variables will be included when the InfoVarsMayHaveGlobal interpreter
          flag is set.

REFACTOR: centralize and modularize reporting of all background errors.

REFACTOR: move the static HandleBackgroundError methods from the EventManager
          class into the EventOps class.

REFACTOR: take steps to prevent timing sensitive tests from failing the entire
          official stable release process.

REFACTOR: remove all remaining superfluous batch tools and scripts.

REFACTOR: permit "safe" interpreters to use the [file channels], [info args],
          [info body], [info complete], [info default], [info ensembles],
          [info locals], [info objects], [info operands], [info patchlevel],
          [info subcommands], and [info tclversion] sub-commands.

REFACTOR: use IOption when declaring temporary option arrays, everywhere.

REFACTOR: *BREAKING CHANGE* add AuxiliaryData and ExtraData properties to the
          ICallFrame interface.

REFACTOR: *BREAKING CHANGE* move the GetOptions and SetArguments methods to the
          new IArgumentManager interface.

REFACTOR: *BREAKING CHANGE* add path argument to [interp readorgetscriptfile]
          sub-command.

REFACTOR: *BREAKING CHANGE* add IPolicyEnsemble interface to manage the set of
          sub-commands that are allowed and disallowed by policy.

REFACTOR: *BREAKING CHANGE* change Utility.SubCommandPolicy parameter used to
          pass the sub-command names to a StringDictionary.

REFACTOR: *BREAKING CHANGE* add interpreter parameter to Utility.BadSubCommand
          method.

REFACTOR: *BREAKING CHANGE* add boolean allowInteger parameter to TryParseEnum
          and TryParseFlagsEnum methods of the Utility class.

REFACTOR: *BREAKING CHANGE* handle displaying null and empty results slightly
          better in the default host.

REFACTOR: *BREAKING CHANGE* make the object data passed to engine notifications
          more consistent.

REFACTOR: *BREAKING CHANGE* rename the NameValueCollection datum passed to the
          asynchronous [uri] completion callbacks from "data" to "collection".

REFACTOR: *BREAKING CHANGE* evaluation of a script containing no commands may
          now return null.

REFACTOR: *BREAKING CHANGE* completely revamp the ListToEnglish method.  first,
          the list prefix is now (only) used right before the list suffix when
          the list separator was not used.  second, change the parameter order
          and remove the superfluous method overloads from the Utility class.

REFACTOR: *BREAKING CHANGE* divide the Tcl native library file name patterns in
          a way that is capable of recognizing TclKits while excluding the base
          kits seen in ActiveTcl.  change names in the FindFlags enumeration to
          match the new semantics.

REFACTOR: *BREAKING CHANGE* the -verbose option to [tcl find] and [tcl select]
          will no longer cause a sript error to be raised if at least one Tcl
          library build was found.

REFACTOR: *BREAKING CHANGE* move QueryState method from the IInteractiveHost
          interface to the interface IHost.

REFACTOR: *BREAKING CHANGE* add IClientData parameter to NewWebClientCallback
          delegate.

REFACTOR: *BREAKING CHANGE* adjust the return code handling semantics of the
          IResolve.GetVariableFrame and IResolve.GetCurrentNamespace to match
          those of the IResolve.GetIExecute and IResolve.GetVariable.

REFACTOR: *BREAKING CHANGE* rename ForceName object flag to ForceAutomaticName.

REFACTOR: *BREAKING CHANGE* add boolean parameter to the Utility.GetPackagePath
          method.

REFACTOR: *BREAKING CHANGE* change the RuntimeOptions dictionary property to a
          ClientDataDictionary instead of a StringDictionary.

REFACTOR: *BREAKING CHANGE* modify all IEngineManager methods related to script
          cancellation to replace all their boolean parameters with a single
          CancelFlags parameter.  also, modify the associated static methods of
          the Engine class as necessary.

REFACTOR: *BREAKING CHANGE* replace boolean parameter to the EvaluateTrusted*
          methods with a TrustFlags parameter.

REFACTOR: *BREAKING CHANGE* revise sub-command management, customization, and
          dispatching.  add ICommandBaseData and ISubCommandData interfaces.
          add SubCommandFlags enumeration.  add AddOrUpdateSubCommand method to
          the IEnsembleData interface.  add SubCommandLevels property to the
          IEngineContext interface.

REFACTOR: *BREAKING CHANGE* in the Utility class, the interpreter parameter
          should be the first for the TryExecuteSubCommandFromEnsemble method.

REFACTOR: *BREAKING CHANGE* add another boolean parameter to WaitForEmptyQueue
          and WaitForEventEnqueued methods of the IEventManager interface.

REFACTOR: *BREAKING CHANGE* move all runtime option related members from the
          IPropertyManager interface to the IRuntimeOptionManager interface.

REFACTOR: *BREAKING CHANGE* remove the ExecutionPolicy.StrictSubject flag.

REFACTOR: *BREAKING CHANGE* add boolean parameter to the WaitForEmptyQueue and
          WaitForEventEnqueued methods of the IEventManager interface.

REFACTOR: *BREAKING CHANGE* add a ValueFlags parameter to the Value.GetIndex
          method.

REFACTOR: *BREAKING CHANGE* rename the CheckForUpdates registry value name to
          CheckCoreUpdates.

REFACTOR: *BREAKING CHANGE* modify the [checkForFossil] script library helper
          procedure to attempt detection of both the Fossil repository remote
          URL and local file.

REFACTOR: *BREAKING CHANGE* the SingleUse value should include creation flags
          from the EmbeddedHostUse value.

REFACTOR: *BREAKING CHANGE* remove the _Version.Invalid constant.

REFACTOR: *BREAKING CHANGE* enhance list index value processing to support the
          syntax variations using "start" as index zero.

REFACTOR: *BREAKING CHANGE* add WriteBox method overloads that accept a minimum
          line length parameter.

REFACTOR: *BREAKING CHANGE* make all constructors of InterpreterHelper private.
          make the secondary InterpreterHelper.Create method overload internal.

REFACTOR: *BREAKING CHANGE* revise the definition and usage of the ChannelType
          enumeration.

REFACTOR: *BREAKING CHANGE* add boolean unwind parameter to the Canceled method
          of the TclWrapper class.

FEATURE: add [object isoftype] sub-command, to permit checking if a specific
         opaque object handle is of a specific Type -OR- it is assignable to
         instances of a specific Type.

FEATURE: add [info context] sub-command, for use by scripts running in "safe"
         interpreters, to enable them to have some baseline information about
         the AppDomain / Thread context they are being evaluated in.

FEATURE: add -allowinteger option to the [parse options] sub-command.

FEATURE: add CheckForOption method to the IArgumentManager interface, which is
         designed to pre-scan for a specific option.

FEATURE: modify [interp readorgetscriptfile] sub-command to support customizing
         the ScriptFlags and EngineFlags passed to the script engine.

FEATURE: add InterpreterTimeStamp to the [info engine] sub-command.

FEATURE: add -hidden option to the [info subcommands] sub-command.

FEATURE: modify the setup to support modifying the PATH.

FEATURE: add -isolationLogFile option to the [test2] command.

FEATURE: add signing of all official release files with GPG.

FEATURE: add CatchResetCancel and CatchResetExit interpreter flags to reset the
         corresponding flags after evaluating the outermost [catch] script.

FEATURE: add [fblocked] command and the -blocking option to [fconfigure].

FEATURE: add NoHandle marshal flag to prevent the core marshaller from looking
         up opaque object handles.

FEATURE: add IgnoreBgErrorFailure interpreter flag to skip reporting when the
         background error handler fails -OR- is simply missing.

FEATURE: add [interp shareinterp] sub-command to enable sharing of interpreters
         that were created using some out-of-band mechanism (i.e. they are not
         owned by the target interpreter).  they will never be disposed via the
         target interpreter.

FEATURE: add -raw option to the [uri upload] sub-command.

FEATURE: add -errorsvar option to the [tcl find] and [tcl select] sub-commands.

FEATURE: add experimental support for building "kits" that contain the entire
         core library assembly and an embedded shell.

FEATURE: add -webclientdata option to both the [uri download] and [uri upload]
         sub-commands.  it can be used to pass extra information to the custom
         WebClient derived classes returned from NewWebClientCallback.

FEATURE: add -ticks and -kind option to the [clock format] sub-command to cause
         the long integer value to be interpreted as ticks instead of seconds.

FEATURE: add getBasePath procedure to the script library to return the fully
         qualified base path for the core library assembly.

FEATURE: add the concept of a "package peer assembly path" and make use of it
         when building the auto-path.

FEATURE: add the AssemblyAnchorPath environment variable to override the value
         used as the anchor point for assembly paths (i.e. instead of using the
         application domain base directory and/or process binary directory).

FEATURE: add experimental support for the ARM64 processor architecture to the
         core library.

FEATURE: add [namespace mappings] sub-command to return the current namespace
         mappings for the interpreter.

FEATURE: add -visibleSpace option to the [test2] command.  when enabled, all
         whitespace characters will be replaced with visible characters in all
         expected output and actual output.

FEATURE: add the Utility.NormalizeLineEndings method for use with the Engine
         methods that accept a script text parameter.

FEATURE: add the Utility.ScriptForLog method for use when logging a command or
         script to a file.

FEATURE: add the GetResourceNames and ExtractPolicyContextAndPlugin methods to
         the Utility class, for use by third-party plugins and applications.

FEATURE: add optional boolean argument to the [info interps] sub-command.  when
         this argument is non-zero in an "unsafe" interpreter, all known global
         and child interpreters will be returned.

FEATURE: improve integer unique identifiers for interpreters and other global
         objects via the USE_APPDOMAIN_FOR_ID compile-time option.  this does
         not change the behavior of the per-interpreter (i.e. local) integer
         unique identifiers.

FEATURE: add -noProcessId option to the [test2] command to reset the previous
         process Id (i.e. of the isolated test process), if applicable.

FEATURE: in the Eagle Package for Tcl (Garuda), support the private Tcl stubs
         mechanism used by Fossil.

FEATURE: add IsTclInterpreterCanceled method to the ITclManager interface.  add
         Tcl_CanceledFlags enumeration and use it for the Tcl_Canceled delegate
         instead of the Tcl_VarFlags enumeration.

FEATURE: add SaveEnabledAndForceDisabled and RestoreEnabled methods to the
         IEventManager interface.

FEATURE: add [interp subcommand] sub-command to query, add, change, reset, or
         remove any sub-command from any command present in the interpreter.

FEATURE: add experimental [debug secureeval] sub-command to evaluate a script
         in the specified interpreter while holding its lock.

FEATURE: add experimental [debug undelete] sub-command to mark the specified
         undefined variable as defined.

FEATURE: support unsigned types in the universal option parser.  add the narrow
         integer types.

FEATURE: add [lget] command to return an element from within a list variable.

FEATURE: add Atomic procedure flag to force the interpreter lock to be held
         during the evaluation of a procedure body.

FEATURE: enhance FindFlags enumeration to support limiting native Tcl library
         matches to zero or more of the pattern lists (e.g. primary only).

FEATURE: add -startupLogFile command line option.  this option requires exactly
         one argument, the name of the file where all applicable tracing output
         will be written.

FEATURE: add an optional argument to the [info engine] sub-command to force all
         ObjectId attributes to be returned, if applicable.

FEATURE: add [debug pluginexecute] sub-command to execute a request against the
         specified plugin via the IExecuteRequest.Execute method.

FEATURE: add getPluginName procedure to the script library to return the fully
         qualified name for the first plugin matching the specified pattern.

FEATURE: add -trace option to the [interp create] sub-command.

FEATURE: add the trace static plugin to enable fine-grained execution tracing.
         the default interpreter creation flags have been adjusted to disable
         this plugin by default; however, that can be overridden using various
         means (e.g. manually removing the NoTracePlugin flag, etc).

FEATURE: add NoUpdates environment variable to disable automatic update checks
         from within the core library.

FEATURE: add -noAuthenticodeSigned and -noStrongNameSigned command line options
         to the updater tool.

FEATURE: the default release type used by the updater tool should be based on
         the files already available on the local machine.

FEATURE: add RepeatCount property to the ITestContext interface and support for
         it within the test suite infrastructure.

FEATURE: add IgnoreThreaded flag to the native Tcl integration subsystem, which
         is used to forcibly enable the loading a non-threaded build of native
         Tcl.

FEATURE: add interactive #restt command to restore (or add) the trace plugin to
         the interactive interpreter.

FEATURE: add interactive #stable command to display or set the stability level
         used when checking for an updated build of the script engine via the
         interactive #check command.  also, show the stability of the current
         build when the interactive #version command is used.

FEATURE: fire notifications when clearing, setting, adding, or removing runtime
         options.

FEATURE: add static InterpreterSettings.LoadFrom method capable of creating an
         instance based on an existing interpreter.

FEATURE: expose the ClientData.WrapOrReplace method.

FEATURE: *BREAKING CHANGE* add IsAllowInteger method to the IOption interface.
         add boolean allowInteger parameter to the static Option.FromString and
         OptionDictionary.FromString methods.

FEATURE: *BREAKING CHANGE* add AuxiliaryData property to the IPluginData
         interface.

FEATURE: *BREAKING CHANGE* add WatchdogControl method to the IInterpreter
         interface.

FEATURE: *BREAKING CHANGE* add eagle_debugger script variable, reserved for use
         by the debugger subsystem.

FEATURE: *BREAKING CHANGE* add InteractiveHost property to IInteractiveManager
         interface.  when set to non-null, it will be used instead of the Host
         property by the interactive loop subsystem.

FEATURE: *BREAKING CHANGE* change path string parameter to IEnumerable<string>
         parameter for the LoadTcl method of the ITclManager interface.

FEATURE: *BREAKING CHANGE* add Callback value to MatchMode enumeration, which
         causes the configured callback method for the interpreter to be used
         for all calls into the [string match] subsystem.

FEATURE: *BREAKING CHANGE* add an IClientData and a DetectFlags parameters to
         the Utility.DetectLibraryPath method.

************************* Beta 1.0.5757.19175 WORKING *************************

BUGFIX: make sure the test_path and test_all_path test suite variables are set
        correctly in all supported deployment configurations.  verified during
        the release process for each build using a special, purpose-built test.

BUGFIX: trim leading namespace separators from the command name passed to the
        AddExecuteCallback method.

BUGFIX: prevent use of FileSystemRights by Mono when using the [glob] command.

BUGFIX: return empty list from the [getFiles] test package procedure when the
        specified directory does not exist.

BUGFIX: raise an error within the [runTestPrologue] and [runTestEpilogue] test
        package procedures when the test path is not set.

BUGFIX: make [reportTestStatistics] test package procedure tolerant of missing
        statistics.

BUGFIX: fix compilation when compile-time constants CONSOLE, ISOLATED_PLUGINS,
        NATIVE, or SHELL are not defined.

REFACTOR: remove some superfluous batch tools and two tool scripts that were
          never completed and remained unused.

REFACTOR: have the update batch tool perform a self-test of the deployed build
          to make sure the test suite can find all of its packages and support
          files.

REFACTOR: revise constructors for the PerformanceClientData class.

REFACTOR: the TclThread class will now only emit PerformanceClientData based
          timing diagnostics when the Timing flag is specified for the event.

REFACTOR: add NoTrace script flag to prevent the FilterScriptResourceNamesTrace
          and GetScriptTrace methods from emitting diagnostics.

REFACTOR: emit a diagnostic if the GetScript method sees a reserved script name
          using a relative path that does not seem to exist on the native file
          system.

REFACTOR: *BREAKING CHANGE* rename the ShouldAllowScriptName method of the core
          script host to ShouldAllowScriptParameters.

FEATURE: allow hosts derived from the core host to modify the key parameters in
         calls to GetScript via the new CheckScriptParameters method.

************************* Beta 1.0.5749.32588 RELEASE *************************

BUGFIX: correct sorting of flags by the AttributeFlags.Parse method.

BUGFIX: stop SerializationException from being thrown when evaluating a script
        using the Engine class from another application domain.

BUGFIX: fix incomplete cleanup of an opaque object handle and its command alias
        for a rare corner case within the FixupReturnValue method when compiled
        without native Tcl integration support.

BUGFIX: cleanup usage of the GetVariableValue method overload that accepts two
        Result output parameters, to conform to what is required when they may
        need to be marshalled between application domains.

BUGFIX: for the [apply] command, properly handle the three-element form of the
        lambda expression, where the third element is the absolute namespace
        where the body should be evaluated.

BUGFIX: fix empty list handling by the [lreplace] command (i.e. just like Tcl,
        it always returns an empty list).

BUGFIX: fix several missing NoCase option flags for the [test2] command.

BUGFIX: resolve various style and correctness issues as revealed by FxCop.

BUGFIX: prevent the FixupReturnValue method from returning a new opaque object
        handle for null values unless the new ForceName flag is used.

BUGFIX: the GetNestedObject, GetObject, GetType, and GetTypeList methods of the
        Value class should accept an empty string as valid input.

BUGFIX: remove duplicate "InitializedPath" entry from the returned interpreter
        host information.

BUGFIX: remove superfluous NoCase option flag from the -isolated option to the
        [interp create] sub-command.

BUGFIX: add constraints to several tests that use references to absolute call
        frame levels.

BUGFIX: minor tweaks to handling of IEnumerable<string> typed arguments to the
        various interactive shell support methods.

BUGFIX: fix getTestLibraryDirectory procedure so that it does not assume that
        the [info library] sub-command can never fail.

BUGFIX: stop adding duplicate command token in the Eagle._Plugins.Test class.

BUGFIX: the HostOps.GetStream method should query isolated stream flags using
        the isolated host, when applicable.

BUGFIX: do not pass method arguments from the Eagle Package for Tcl (Garuda)
        into a "safe" Eagle interpreter.

BUGFIX: prevent the startup library path and pre-initialize script text from
        being used twice.  this primarily involves usage by the Eagle Package
        for Tcl (Garuda).

BUGFIX: add the CatchInterrupt callback flag to permit scripts to gracefully
        handle ThreadInterruptedException being thrown.  technically, this is
        not a bug; however, without this change, there is no reliable way to
        shutdown a callback thread using the Thread.Interrupt method that does
        not also cause an unhandled exception.

BUGFIX: make sure that the [package scan] sub-command actually removes package
        index files that are no longer present.

BUGFIX: call SetExceptionErrorCode from all appropriate places in the Engine
        class.

BUGFIX: the type initializer for the PlatformOps class cannot make use of the
        StringOps class.  also, move the creation and setup of the processor,
        platform, and operating system lists into the Initialize method.

BUGFIX: make sure entry assembly data in the GlobalState class ends up being
        valid even when the Assembly.GetEntryAssembly method returns null.

BUGFIX: using a variable name to store an opaque object handle should result in
        a reference being tracked.

BUGFIX: remove [catch] from the CurrentFrame checks in the test prologue and
        epilogue.

BUGFIX: make sure [interp alias] uses properly formatted names when checking to
        see if a command (or procedure) already exists.

BUGFIX: update the RemoveToStringCallback and RemoveChangeTypeCallback methods
        of the ScriptBinder class to return success only when the underlying
        Remove method call actually results in an entry being removed.

BUGFIX: *SECURITY* do not load the native utility library from a trusted core
        library unless it is also trusted.

BUGFIX: *BREAKING CHANGE* improve concurrency of the DebugOps.Complain method.
        also, add integer retry parameter to the ComplainCallback delegate.

REFACTOR: add support for WiX version 3.10.

REFACTOR: enhance processTestArguments procedure to allow it to resynchronize
          with subsequent known valid test options.

REFACTOR: use StringComparison values defined in the StringOps class instead of
          using them directly.

REFACTOR: move strong name key checking and warnings from the prologue into the
          constraints package.

REFACTOR: streamline how the Engine executes pending callbacks from the queue
          associated with the interpreter context.

REFACTOR: the core NuGet packages should set the EAGLE compile-time constant.

REFACTOR: the CommandCallback class now implements the IDisposable interface.

REFACTOR: add workaround for broken reads on the .NET Framework 4.0 and later
          when reading from the standard input stream (e.g. __ConsoleStream).

REFACTOR: add "safe" variants to the Eagle._Constants.ContentType class.

REFACTOR: add ScriptLocationList private container class and make use of it for
          the internal ScriptLocations property of the interpreter.

REFACTOR: move the preQuiet block in the test prologue to just after the needed
          packages are loaded.

REFACTOR: introduce the concept of reserved script names to the core host and
          issue a warning when one is seen without directory information.

REFACTOR: allow classes derived from the Core host class to reject script name
          resolution from the IFileSystemHost.GetScript method.

REFACTOR: allow callers of the Engine.ReadOrGetScriptFile method to specify the
          NoFileNameOnly engine flag.  this engine flag, when enabled, prevents
          use of the Path.GetFileName method when considering candidate script
          names to check via the interpreter host.

REFACTOR: download the stable.txt or latest.txt file instead of the update.txt
          file when checking for updates, depending on whether or not the STABLE
          compile-time constant was defined when building the core library.

REFACTOR: *SECURITY* permit [interp children] and [object dispose] sub-commands
          to be used from within a "safe" interpreter.

REFACTOR: *BREAKING CHANGE* modify AttributeFlags.Parse method to allow spaces
          within each name sub-field.

REFACTOR: *BREAKING CHANGE* fine-tune the GetScript method of the core host to
          allow it to better handle requests for qualified script names.

REFACTOR: *BREAKING CHANGE* the ObjectOptionType enumeration type now derives
          from UInt64.

REFACTOR: *BREAKING CHANGE* add MarshalFlags property to the ChangeTypeData
          class and the IChangeTypeData interface.  add MarshalFlags parameter
          to the ChangeTypeCallback and ToStringCallback delegates.  add
          MarshalFlags property to the ICallbackData interface.  add
          GetDynamicInvokeCallback and FireDynamicInvokeCallback methods to the
          ICallback interface.  add MarshalFlags parameter to the
          InvokeToStringCallback and InvokeChangeTypeCallback methods of the
          IScriptBinder interface.

REFACTOR: *BREAKING CHANGE* add the QualifiedName property to the IVariable
          interface.

REFACTOR: *BREAKING CHANGE* add the DefaultBinder property to the IScriptBinder
          interface.

REFACTOR: *BREAKING CHANGE* modify result of [info operators] to be a list of
          lists containing information for each operator.

REFACTOR: *BREAKING CHANGE* rename Eagle._Constants.FileName.PackageIndex to
          LibraryPackageIndex.

REFACTOR: *BREAKING CHANGE* add PackageType parameter to ScriptTypeToFileName
          method of the Utility class.

REFACTOR: *BREAKING CHANGE* rename the SearchForFile method to SearchForPath in
          the Utility class.

REFACTOR: *BREAKING CHANGE* rename the IInteractiveHost.GetFlags method to
          GetHostFlags.  add the IInteractiveHost.GetHeaderFlags method.

REFACTOR: *BREAKING CHANGE* rename the Flags property to ObjectFlags for the
          public interfaces ICallbackData and IObjectData.

REFACTOR: *BREAKING CHANGE* check for packages inside a lib sub-directory that
          is child of the directory containing the executing assembly itself.
          this package location is permanently reserved for use by third-party
          applications and plugins only.

REFACTOR: *BREAKING CHANGE* add LoadFlags property to the ITclApi interface.
          add a LoadFlags parameter to the TclWrapper.Load method and to the
          LoadTcl method of the ITclManager interface.

REFACTOR: *BREAKING CHANGE* rename -flags option to [tcl load] to -findflags.

REFACTOR: *BREAKING CHANGE* remove the NoCancel, StopOnError, and ErrorOnEmpty
          properties from the IScriptThread interface and replace them with the
          new EventWaitFlags property.

REFACTOR: *BREAKING CHANGE* remove boolean parameters from WaitVariable method
          and replace them with a single EventWaitFlags parameter.

REFACTOR: *BREAKING CHANGE* add the Verbose, InitializeFlags, and ScriptFlags
          properties to the IScriptThread interface.  also, make it possible to
          gracefully shutdown a ScriptThread during its disposal.

REFACTOR: *BREAKING CHANGE* refactor values of the OptionOriginFlags enum.

REFACTOR: *BREAKING CHANGE* rename the startup -library and -preInitialize
          command line options to -startupLibrary and -startupPreInitialize,
          respectively.

REFACTOR: *BREAKING CHANGE* replace IEngineHost interface with IFileSystemHost,
          IProcessHost, and IThreadHost interfaces.

REFACTOR: *BREAKING CHANGE* privatize the classes CacheDictionary,
          CallFrameDictionary, DbConnectionTypeStringDictionary,
          IntDictionary, LongStringDictionary, PairList,
          ParseStateDictionary, QueueList, and ReturnCodeDictionary.

REFACTOR: *BREAKING CHANGE* delete the unused classes ArgumentListList,
          CallFrameList, ClientDataDictionary, DecimalDictionary,
          ExpressionStateDictionary, LongDictionary, MemberInfoList,
          PointList, ReadOnlyDictionary, StringBuilderDictionary,
          UintPair, and UintPairList.

REFACTOR: *BREAKING CHANGE* move all the test suite infrastructure files into
          their own directory, named "Test1.0".  includes the test constraints
          package files, the test prologue and epilogue files, and the primary
          test suite file.  add stub files for the primary test suite file and
          the test prologue/epilogue files.

REFACTOR: *BREAKING CHANGE* add StartsWith and EndsWith methods to the IString
          interface.

REFACTOR: *BREAKING CHANGE* revise initialization of the test package in order
          to make it easier to understand and maintain.

REFACTOR: *BREAKING CHANGE* make sure the ProcessOps.ExecuteProcess method does
          not explicitly set the result or error parameters to String.Empty.

REFACTOR: *BREAKING CHANGE* remove -noStart and -noPass options from the test2
          command and their associated interpreter flag handling.

FEATURE: add the ability to automatically check for core library updates during
         startup of the interactive loop.  currently, this can only be enabled
         by selecting the appropriate box when running the setup package.  this
         feature is enabled by default in the setup package (i.e. the check box
         is pre-selected).

FEATURE: add the public IRfc2898DataProvider interface.

FEATURE: add Engine call frame type and have the script engine make use of it
         within the appropriate EvaluateFile, EvaluateStream, SubstituteFile,
         and SubstituteStream method overloads.  this new handling is disabled
         by default.  it can be enabled for all files and streams by using the
         FileCallFrame and StreamCallFrame engine flags, respectively.

FEATURE: add SkipTerminate value to the PluginFlags enumeration and use it from
         the UnloadPlugin method overload that accepts an IPlugin instance.

FEATURE: add TryLock and ExitLock methods to the ISynchronize interface.

FEATURE: add the StickAlias object flag to cause a command alias to be created
         if an opaque object handle is created via another opaque object handle
         with the flag set.

FEATURE: have the interpreter keep track of the original exception for those
         that are handled via Engine.SetExceptionErrorCode.

FEATURE: add core library NuGet package compiled for the .NET Framework 4.0.

FEATURE: add ReaderAndCount value to the DbExecuteType enumeration.  when used,
         it will return the count of rows found along with the result.

FEATURE: add [string is hexadecimal] sub-command to verify a string contains
         only hexadecimal digits.

FEATURE: add -loadflags option to the [tcl load] sub-command to permit better
         control over the native Tcl loading process.

FEATURE: when using the [vwait] command (or another component that calls into
         the WaitVariable method), support the processing of native Tcl events
         while waiting.  this allows a ScriptThread object to host a Tk-based
         user-interface without issues.

FEATURE: add [host readchar], [host readkey], [host readline], and [host write]
         sub-commands to enable reading and writing of data via the interpreter
         host.

FEATURE: add [namespace name] sub-command to return the absolute qualified name
         for the specified non-qualified name, based on the current namespace.

FEATURE: add the unknownObjectInvoke runtime option.  if enabled, any attempts
         to execute unknown named commands will execute [object invoke] on them
         instead of simply giving up and returning errors, if they appear to be
         valid managed types.

FEATURE: implement the test isolation level designed to run a test in a child
         (Eagle Shell) process.

FEATURE: add interactive #izflags command to display or set the initialization
         flags for the interpreter.

FEATURE: add interactive #support command to display information on obtaining
         commercial support.

FEATURE: add [interp shareobject] sub-command to allow an opaque object handle
         from an interpreter to be shared with one of its child interpreters.

FEATURE: add [info shelllibrary] sub-command to return the path where the shell
         library was initialized from.  also, add the tcl_shellLibrary variable
         to save the location where the shell library was initialized from.

FEATURE: add GetArgumentFromObject, GetResultFromObject, GetControlHandle,
         GetMenuHandle, CreateCommandCallback, and SelectRandomArrayValue
         methods to the Utility class.

FEATURE: expose the Value.GetWideInteger2 method overload that does not require
         a Result output parameter.

FEATURE: add [library checkload] sub-command to load the native module only if
         the associated file name has not previously been loaded by the native
         module subsystem (e.g. via the [library checkload] or [library load]
         sub-commands).

FEATURE: add -fast option to the [scope create] sub-command.

FEATURE: *BREAKING CHANGE* add experimental support to the Delegate conversion
         subsystem for arbitrary method signatures, including those with return
         values and ByRef parameters.

FEATURE: *BREAKING CHANGE* add experimental support for overriding all Delegate
         conversion related options inline.  these options, if present, must
         occur before the actual command for the callback.

FEATURE: *BREAKING CHANGE* add a DoesVariableExist method overload that accepts
         an output error parameter to the IVariableManager interface.

FEATURE: *BREAKING CHANGE* add the ListOperators method to the IEntityManager
         interface.

FEATURE: *BREAKING CHANGE* add eagle_shell script variable, which is reserved
         for use by the interactive shell.

FEATURE: *BREAKING CHANGE* permit fine-grained control over the initialization
         process for the core script library.

FEATURE: *BREAKING CHANGE* add MakeProcedureFast method to the IEntityManager
         interface.  this method can be used to disable (or reenable) all the
         extra extensibility steps taken in the script variable subsystem (e.g.
         traces, watches, notifications, post-processing, etc) in order to speed
         up all local variable access within a specific procedure.

************************* Beta 1.0.5633.18513 RELEASE *************************

BUGFIX: *MAJOR* use correct address for the Tcl_ResetResult function pointer in
        the TclApi class.

BUGFIX: in a "safe" interpreter, scrub the file name information returned from
        the [package info] sub-command.  also, modify path scrubber to be more
        robust when dealing with different directory separators.

BUGFIX: do not record the file name that provided a previously unknown package
        as the package index file name as well.

BUGFIX: correct typo that was causing the file modification time value returned
        from the [file information] sub-command to be wrong.

BUGFIX: on Windows, when native APIs are available, return the same [file size]
        result as native Tcl does for directories.

BUGFIX: the Eagle Package for Tcl (Garuda) cannot access the TIP #285, #335, or
        #336 related function pointer entries in the stubs tables unless the Tcl
        version is 8.6 or higher.

BUGFIX: harden the Detach method of the NativePackage class against cases where
        the primary or isolated Eagle interpreter is not found.

BUGFIX: the Eagle Package for Tcl (Garuda) must handle a Tcl interpreter being
        deleted by invoking the configured managed detach method.

BUGFIX: avoid native Tcl interpreter name collision in the NativePackage class
        by using the global counter, instead of the one from the newly created
        Eagle interpreter.

BUGFIX: in NativePackage, cleanup various inconsistencies in handling startup,
        detach, and shutdown when multiple interpreters are involved.  improve
        trace output.

BUGFIX: convince the .NET Framework remoting infrastructure that it should copy
        the resulting StringPairList data back from the interpreter application
        domain when coming back from its GetHost*Info methods.  apparently, it
        is necessary to mark the internally modified StringPairList parameters
        with the "ref" keyword, even though only their state is modified.

BUGFIX: avoid trying to use types from a different application domains during
        the construction of object alias names within the core marshaller.

BUGFIX: when [vwait] is used on an array element, make sure that unsetting the
        entire array causes the element to be considered dirty.

BUGFIX: when processing package indexes, the PreferFileSystem flag should be
        honored.

BUGFIX: packages indexes found via the file system and interpreter host should
        not collide.  more specifically, the package index for the core script
        library should not be loaded twice, one via file system and once via
        interpreter host.

BUGFIX: for tests that use [execTestShell], make sure the quiet constraint is
        honored by the child shell.

BUGFIX: the script library and test suite infrastructure should not assume that
        the [object] command is always available.

BUGFIX: the interactive #hexit command should not attempt to use the host upon
        success.

BUGFIX: improve reliability of the console IDebugHost.Cancel method; the Read
        and ReadLine methods should not return values after being canceled.

BUGFIX: when using the declared default value for optional parameters in the
        core marshaller, make sure to avoid using null for value types.

BUGFIX: fix final argument index checking when processing method overloads that
        contain both optional parameters and a params parameter.

BUGFIX: the method overload resolution engine must maintain multiple lists of
        ArgumentInfo objects, one list per method overload returned.  without
        this fix, there are some very rare cases that will fail when two or
        more method overloads have output parameters, the same name, and the
        same number of parameters (if their parameter types are incompatible).

BUGFIX: prevent the first script specified via the -preInitialize command line
        option from being evaluated twice by the default shell.

BUGFIX: when evaluating predefined library and/or host scripts, make sure that
        calls to [info script] return the name exactly as it was specified.

BUGFIX: use the correct interpreter when adding and removing AppDomains used to
        host isolated child interpreters.

BUGFIX: make the default host more fault tolerant when introspecting a disposed
        interpreter pursuant to the IInformationHost methods.

BUGFIX: *BREAKING CHANGE* make the [info loaded] sub-command optional argument
        handling more compatible with Tcl 8.4.  the first optional argument is
        now an interpreter to use instead of being a pattern to match.  due to
        strict interpreter isolation, it is still not possible to get the list
        of all loaded packages in the process.

BUGFIX: *BREAKING CHANGE* make sure the "dir" variable used by package index
        files always use forward slash as the directory separator.

BUGFIX: *BREAKING CHANGE* the interactive command help methods in the Utility
        class, GetInteractiveCommandNames and GetInteractiveCommandHelpItem,
        should require an interpreter parameter.

REFACTOR: enhance default host introspection by adding information from the
          SetupOps class.

REFACTOR: add internal EventVariableFlags and EventWaitFlags properties to the
          interpreter class, for use with [vwait] via reflection.

REFACTOR: make use of PackageIndexFlags, instead of several boolean parameters,
          when searching for package index files.

REFACTOR: add [object] command constraints to all applicable tests.

REFACTOR: fix and improve tracing of interactive commands when the associated
          flag is set.

REFACTOR: add introspection of protected core host properties via the default
          host.

REFACTOR: improve and update the native Tcl integration example scripts.

REFACTOR: revise native Tcl library selection algorithm to favor environment
          variables over the various built-in library paths.  also, revise the
          selection algorithm to consider the order in which candidate native
          Tcl libraries were added to the logical search list.  finally, permit
          the interpreter auto-path to be used as the basis for finding native
          Tcl libraries.

REFACTOR: modify private removal methods for commands, procedures, and generic
          executable entities to support removing the hidden variants as well.

REFACTOR: revise how ScriptTypes and their associated file name constants are
          used by the core library.

REFACTOR: add internal PackageIndexFlags property to the interpreter, which may
          modify the PackageIndexFlags used when processing auto-path changes.

REFACTOR: add internal TclFindFlags property to the interpreter, which are the
          default FindFlags for Tcl when none are specified.

REFACTOR: centralize and enhance mapping of platform names to their associated
          processor names.

REFACTOR: update Fossil tool w/source to version 1.33.

REFACTOR: *SECURITY* permit the [interp alias] and [interp aliases] sub-commands
          to be used from within a "safe" interpreter.

REFACTOR: *BREAKING CHANGE* add boolean parameter to the IsTclInterpreterReady
          method of the ITclManager interface and to the IsReady method of the
          TclWrapper class.

REFACTOR: *BREAKING CHANGE* add sizeOf member to both the native ClrTclStubs
          structure and the managed NativeStubs structure.  these structures,
          which are used to communicate the native Tcl API function pointers
          when the METHOD_PROTOCOL_V1R2 flag is set, must have an identical
          layout.

REFACTOR: *BREAKING CHANGE* revise how host-only package indexes are handled.
          they will no longer be read from the file system.

REFACTOR: *BREAKING CHANGE* add IClientData output parameter to the GetScript
          method of the IEngineHost and IScriptManager interfaces.

REFACTOR: *BREAKING CHANGE* add a boolean parameter to the ScriptTypeToFileName
          method exposed by the Utility class.

REFACTOR: *BREAKING CHANGE* add a PackageType enumeration parameter to both the
          GetPackageName method overloads exposed by the Utility class.

REFACTOR: *BREAKING CHANGE* only the native Tcl integration subsystem should
          rely on native thread Ids.

REFACTOR: *BREAKING CHANGE* move/rename the Interpreter.InteractiveLoopThread
          method to Utility.CreateInteractiveLoopThread.

REFACTOR: *BREAKING CHANGE* move/rename the Interpreter.ShellThreadMain method
          to Utility.CreateShellMainThread.

REFACTOR: *BREAKING CHANGE* add boolean parameter to the IDebugHost.Cancel and
          IDebugHost.Exit methods.

FEATURE: add [tcl build] sub-command to return the metadata about the currently
         loaded Tcl library.

FEATURE: add -alias option to the [library declare] sub-command.

FEATURE: improve out-of-box-experience by including a TclKit shell and library
         in the default setup package.

FEATURE: add [info externals] sub-command to return the root path where files
         from external projects should be located.

FEATURE: add IsSameAppDomain method to the IInterpreter interface.

FEATURE: add -nosignal option to the [array copy] sub-command to skip flagging
         each destination array element as changed.

FEATURE: add -nonormal option to the [package scan] sub-command.

FEATURE: add interactive #npinfo command to display the interpreters managed by
         the native package.

FEATURE: add interactive #paflags command to display or set the flags for newly
         created packages.

FEATURE: add an optional boolean argument to the [host cancel] and [host exit]
         sub-commands.  when non-zero, the operation will be done forcefully.

FEATURE: mark the Utility.IsPluginIsolated method as obsolete.  also, add the
         StopInteractiveLoopThread, GetResultFromObject, IsCrossAppDomain, and
         GetExternalsPath methods to the Utility class.

FEATURE: add -reorderflags option to the [object invoke] sub-command and all
         related sub-commands.  it allows for more control over the automatic
         method overload selection process without the need to manually choose
         an exact method overload in advance.

FEATURE: add the [debug runtimeoption] sub-command to provide easier access to
         the runtime options.

FEATURE: add the [debug testpath] sub-command to allow getting and setting the
         internal per-thread TestPath property of the interpreter.

FEATURE: add the [debug refreshautopath] sub-command to allow script access to
         the manual auto-path refresh feature.

FEATURE: add [file stat] and [file lstat] sub-commands, largely compatible with
         Tcl 8.4.

FEATURE: permit applications using the Eagle Package for Tcl (Garuda) to avoid
         having it try to stop the CLR when unloaded.  this is done via setting
         the namespace variable stopClr to non-zero prior to unloading it.

FEATURE: *BREAKING CHANGE* support options for aliases added via [tcl create].

FEATURE: *BREAKING CHANGE* add a boolean parameter to the GetPackagePath method
         of the Utility class.

FEATURE: *BREAKING CHANGE* the externals directory will be included in searches
         for script files and native Tcl libraries by default.

FEATURE: *BREAKING CHANGE* add an interpreter parameter to the Find method of
         the TclWrapper class.

FEATURE: *BREAKING CHANGE* add an optional boolean argument to the [info ptid]
         and [info tid] sub-commands.  when non-zero, the native thread Id will
         be returned; otherwise, a managed thread Id may be returned, depending
         on how the core library was compiled.

************************* Beta 1.0.5542.25903 RELEASE *************************

BUGFIX: correct handling of [glob] when a pattern refers to the root of a file
        system.

BUGFIX: after reading command line arguments from a file, close the associated
        text reader.

BUGFIX: prevent NullReferenceException from being thrown by the LogSyntaxError
        method of the ExpressionParser class.

BUGFIX: when using an IDebugHost from the DebugOps class, attempt to make sure
        it is usable prior to attempting the operation.

BUGFIX: fix usage of host cloning when an interpreter is being created for use
        with the script debugger.  before this fix, interpreter creation would
        fail during initialization if an embedded script library was the only
        available script library.

BUGFIX: fix updater tool so that it can properly update an installation that is
        present in an "Eagle" directory at the root of a volume.

BUGFIX: fix settings merge support in the ScriptOps.LoadSettingsViaFile method.

BUGFIX: fix [sql execute] handling of boundary cases for the Single and Double
        types.

BUGFIX: fix NullReferenceException when using the [array set] sub-command to
        create an array linked to an undefined variable that was previously a
        scalar variable.

BUGFIX: prevent the DebugOps.DumpAppDomain method from throwing an exception
        (NotSupportedException) when trying to read the Location property of an
        Assembly.

BUGFIX: be more careful about using the C# new keyword to "override" methods of
        a class that implements an interface.

BUGFIX: fix failure of test namespace-52.1 due to the global unknown not being
        initialized prior to calling PreSetupNamespaces in PreSetup.  this bug
        only impacted interpreters created with the UseNamespaces flag.

BUGFIX: fix handling of the static interpreter lock in the DebugOps class when
        fetching values of the DefaultTraceStack and DefaultQuiet properties.

BUGFIX: skip acquiring the Tcl lock in the AddStandardTclBridge method itself;
        instead, rely on locks acquired by the called methods.

BUGFIX: acquire the interpreter lock in the DeleteNamespace method to enforce
        transactional semantics between it and the AreNamespacesEnabled method.

BUGFIX: avoid writing more than one line of the background color when the host
        output buffer has exceeded its limit (e.g. announcements, call frames,
        results, etc).

BUGFIX: add PrivateNotifyTypes and PrivateNotifyFlags properties to help avoid
        obtaining the interpreter lock when checking notifications.  this will
        also help to avoid deadlocks when calling into native Tcl integration
        methods that require the Tcl lock (e.g. via the ITclManager and/or
        ITclEntityManager interfaces).

BUGFIX: prevent the [scope eval] sub-command from popping an extra call frame.

BUGFIX: prevent any interactive extension commands that do not implement the
        ICommand interface from being hidden by those that do implement it.

BUGFIX: correct buffer offset calculations for several translation modes in the
        TranslateInputEndOfLine and TranslateOutputEndOfLine methods when the
        input and output buffers are not the same size.

BUGFIX: the stream returned by OpenScriptStream must be closed before returning
        from the ReadScriptFile method.

BUGFIX: make sure the [interp readorgetscriptfile] sub-command returns script
        text that only uses line-feeds for end-of-line sequences.

BUGFIX: in the universal option parser, honor the Ignored, Unsupported, and
        Disabled option flags for the EndOfOptions and ListOfOptions special
        options.  return an error if a resolved option is null instead of just
        ignorning it.  skip any ListOfOptions instances when converting to an
        argument list.

BUGFIX: *BREAKING CHANGE* when using the -nocapture option to [exec], make sure
        the -success option still works as designed.  also, add the -noexitcode
        option to disable capturing the child process exit code.

REFACTOR: update Fossil tool w/source to version edb8237f06040e.

REFACTOR: centralize handling of the original and line-ending translated script
          text within the engine.  also, make ReadScriptXmlNode return both the
          original and line-ending translated script text.

REFACTOR: check for the native utility feature USE_SYSSTRINGLEN at runtime even
          when the NATIVE_UTILITY_BSTR compile-time constant is disabled.

REFACTOR: skip null values when filtering interpreters within the GlobalState
          class.

REFACTOR: stub in support for the -blocking option to [fconfigure].

REFACTOR: add internal CultureName property to the Interpreter to avoid having
          internal callers access it via the CultureInfo property.

REFACTOR: stop using the compile-time constants NET_45, NET_451, and NET_452
          when they are not required.

REFACTOR: remove the the sha1sum tool and use Fossil sha1sum command instead.

REFACTOR: pass the library path and auto-path list from the parent interpreter
          all the way down the call stack so that it can be used when creating
          the isolated debugger interpreter.

REFACTOR: add DemandStrongName and DemandCertificate method overloads that will
          provide the object used to create the permission.

REFACTOR: add UseHostLibrary value to the CreateFlags enum and NoLibraryFile
          value to the ScriptFlags enum in order to permit better control over
          the location of the script library.

REFACTOR: be more selective about using the ThreadStart delegate type from the
          CommandCallback class.

REFACTOR: improve error message handling in the Value.GetNestedObject method.

REFACTOR: add support for WiX version 3.9.

REFACTOR: remove hard-coded formatting of all DebugTrace output and improve it
          by adding more context information, when available.

REFACTOR: centralize usage of the AppDomain.CurrentDomain static property.

REFACTOR: refine usage patterns for some of the call frame management methods.

REFACTOR: prevent the Value.GetBoolean3 method from performing type conversions
          when the value is already numeric.

REFACTOR: permit Authenticode certificate trust checking to be skipped using an
          instance-specific registry setting.

REFACTOR: stop using the public static encoding fields of the Interpreter class
          from within the core library.  instead, in most places, use three new
          methods exposed by the StringOps class (i.e. GetString, GetBytes, and
          GetByteCount).

REFACTOR: move encodings from the Channel class to the StringOps class and make
          them private.  add methods to return the various built-in encodings
          and to handle conversions between two encodings.

REFACTOR: add several RSA public keys, of varying [larger] sizes, just in case
          they are needed later by the software update infrastructure.

REFACTOR: *BREAKING CHANGE* move tcl_platform(processorAffinityMasks) element
          to the eagle_platform array.

REFACTOR: *BREAKING CHANGE* remove all uses of the Interpreter.GetEncoding
          method that were used to process -encoding option values.  this is a
          breaking change for the [uri download] and [uri upload] sub-commands
          when used with the -inline option and the optional encoding argument.

REFACTOR: *BREAKING CHANGE* remove static Interpreter.GetEncoding methods.  add
          non-static GetEncoding method to the IEntityManager interface.

REFACTOR: *BREAKING CHANGE* the named encoding "default" now maps to UTF-8, not
          ISO-8859-1 (e.g. for use with the [fconfigure -encoding] option).

REFACTOR: *BREAKING CHANGE* when using [puts], permit oversize writes to the
          console channels by splitting the request into smaller chunks.

REFACTOR: *BREAKING CHANGE* change the NuGet package to take advantage of its
          MSBuild integration features.

REFACTOR: *BREAKING CHANGE* keep track of which constraints caused each test to
          be skipped.

REFACTOR: *BREAKING CHANGE* add a TypeList parameter to both the Value.GetType
          and Value.GetNestedObject methods.

REFACTOR: *BREAKING CHANGE* make the Id property of ScriptThread objects use a
          pool of integer identifiers different from that of the interpreters
          and other, miscellaneous objects.

FEATURE: add -minorincrement and -majorincrement options to [tcl versionrange]
         sub-command.

FEATURE: add TclReadOnly property to the ITclManager interface.  make sure to
         set it to true when the native package interpreter is being created.

FEATURE: add NativePackagePreInitialize environment variable to allow a script
         to be evaluated for an interpreter created by the native package just
         prior to it being initialized.

FEATURE: add an ActiveCount property to the IScriptThread interface.

FEATURE: add -constraintExpression option to the [test2] command, to allow the
         skipping of tests based on the result of an arbitrary expression.  if
         the resulting boolean value is false, the test will be skipped.

FEATURE: support embedding descriptions for use by the interactive help system
         within procedure bodies via specially formatted comments delimited by
         "# <help>" and "# </help>", both on their own lines.  this feature is
         primarily intended for use by interactive extension procedures.

FEATURE: add [hash list] sub-command to return the various lists of available
         cryptographic hashing algorithms.

FEATURE: add -objecttypes option to the [object invoke] sub-command and all
         related sub-commands.  this allows a generic type to be invoked by
         specifying the necessary generic type arguments at runtime.

FEATURE: add -methodtypes option to the [object invoke] sub-command and all
         related sub-commands.  this allows a generic method to be invoked by
         specifying the necessary generic type arguments at runtime.

FEATURE: permit namespaces to be enabled by default for all new interpreters
         that are created using the default creation flags by enabling the
         USE_NAMESPACES compile-time constant.

FEATURE: add PluginBaseDirectory property to the IPluginManager interface and
         -baseDirectory option to the [test2] command.

FEATURE: add list-of-options [meta-]option that returns the list of available
         options for the associated command or sub-command instead of actually
         executing it.

FEATURE: add an optional boolean argument to the [info binary] sub-command to
         force returning the same directory used for the default application
         domain (i.e. when running from a non-default application domain).

FEATURE: add ExtractDataFromComments and FormatComplaint methods to the Utility
         class.

FEATURE: add static ComplainCallback property to the Interpreter class.

FEATURE: add eagle_platform(applicationAddressRange) element that will contain
         the range of memory addresses available for use by applications.

FEATURE: add experimental [namespace rename] sub-command to rename an existing
         namespace.

FEATURE: recognize and process the new "&" (keep) operator whenever enumerated
         flag values are being processed.

FEATURE: add -byrefobjectflags option to [object create], [object invoke], and
         all related commands that use FixupByRefArguments.

FEATURE: modify the universal option parser to support options of the Encoding
         type.

FEATURE: add interactive #website command to launch the configured web browser
         to view the official web site.

FEATURE: add [debug iqueue] sub-command to manage the debugger command queue,
         which provides a way to arrange for multiple commands to be executed
         from within the interactive loop.

FEATURE: add GetStartupPreInitializeText method to the Interpreter class and
         make use of it from the same places that use GetStartupLibraryPath.

FEATURE: add the -preWait and -postWait options to the test package.  they are
         used to wait the specified number of milliseconds before and/or after
         each test file evaluated.

FEATURE: *BREAKING CHANGE* add interactive #exact command to toggle exact name
         matching for interactive extension commands.  by default, this is now
         enabled.

FEATURE: *BREAKING CHANGE* add policy support to the plugin loader.  this is a
         breaking change because it required adding several arguments to the
         PolicyContext.Create method.

FEATURE: *BREAKING CHANGE* modify the [encoding names] sub-command to add an
         optional boolean argument that can be used to omit system encodings
         from the result.  this is a breaking change because the new argument
         occurs before the previously available optional pattern argument.

FEATURE: *BREAKING CHANGE* add DbVariableFlags property to the DatabaseVariable
         class and to the associated Create method.

************************* Beta 1.0.5384.19912 RELEASE *************************

BUGFIX: *MAJOR* prevent undefined global and namespace variables from being
        improperly removed from their call frame when a procedure uses either
        the [global] or [variable] command to create a link to an undefined
        variable and returns from the enclosing procedure without performing
        any action that would result in the variable being defined.

BUGFIX: when namespace support is enabled, make sure the ::Eagle namespace is
        translated to the fully qualified global namespace name and not simply
        an empty string.

BUGFIX: remove improper caching of parsed lists when processing nested indexes
        used for accessing elements in a list.

BUGFIX: produce better error messages when an attempt to invoke a nested member
        somehow fails method overload resolution.

BUGFIX: correct handling for negative array bounds in the core marshaller.

BUGFIX: prevent multi-dimensional arrays with simple element types from being
        converted to a list of strings by the core marshaller.

BUGFIX: prevent the [array copy] sub-command from throwing an exception if the
        target variable is present (but not defined) in the call frame.

BUGFIX: the [namespace1 which] and [namespace2 which] sub-commands should not
        consider undefined variables.

BUGFIX: the interactive #restv command should hold the interpreter lock while
        restoring the core script variables.

BUGFIX: fix option bounds handling in the [clock buildnumber], [clock days],
        and [file glob] sub-commands as well as the [split] command.

BUGFIX: add missing lock statement to the AddTrace method overload responsible
        for adding global traces.

BUGFIX: use snapshot semantics for the current policy collection when executing
        policy callbacks.

BUGFIX: set the SkipNullSetupValue flag when the -arrayasvalue option is used
        with the Utility.InvokeDelegate method.

BUGFIX: make it possible, at a glance, to determine if the interactive #sresult
        command succeeded or failed.

BUGFIX: fix [interp set] result when reading a variable value from an isolated
        interpreter.

BUGFIX: make sure the ConsoleCancelEventHandler method can handle interpreters
        from multiple application domains (e.g. isolated child interpreters).

BUGFIX: use the correct box name in the _Hosts.Default.WriteTokenInfo method.

BUGFIX: add several recently added option types to the Option.ToString method.

BUGFIX: the Engine.ReadScriptStream and Engine.ReadScriptFile methods should
        check the interpreter for null prior to accessing its ValidateXml or
        AllXml properties.

BUGFIX: if the Name property of an INamespace gets changed, make sure to update
        all references to it in the parent and children, if any.

BUGFIX: for the Eagle Package for Tcl (Garuda), make sure that running the test
        suite from the TEA makefile uses the selected configuration suffix.

BUGFIX: *BREAKING CHANGE* do not attempt to dispose of object instances if the
        associated opaque object handle was not created by an [object] related
        sub-command that is primarily designed to result in the creation of new
        object instances.

REFACTOR: make the processTestArguments test library procedure more robust in
          the face of unrecognized command line arguments.

REFACTOR: make the [unset -zerostring] option work better for arrays and cached
          results.

REFACTOR: centralize and streamline handling of all core marshaller related
          sub-commands, including all [object] sub-commands taking options.

REFACTOR: improve handling of command tokens by the [namespace enable] command.

REFACTOR: modify handling of the NET_20_ONLY compile-time option so that it is
          handled consistently by all applicable sub-projects.

REFACTOR: improvements and corrections to the interactive shell help content.

REFACTOR: update Fossil tool w/source to version e061a675e69cf8.

REFACTOR: revise usage of [uri softwareupdates] by the script library to permit
          the software updates SSL certificate to remain trusted.

REFACTOR: callers to the internal ObjectOps.DefaultSynchronous field should now
          use the ObjectOps.GetDefaultSynchronous accessor method instead.

REFACTOR: when enabled, initialize namespace support earlier in the interpreter
          setup process.

REFACTOR: streamline usage of CreateFlags values for use by applications and
          plugins embedding the core library.  also, in the OptionOriginFlags
          enumeration, rename the NoOverride value to NonOverride.

REFACTOR: cleanup use of the NativeOps.GetErrorMessage method.

REFACTOR: add preliminary support for the .NET Framework 4.5.2.

REFACTOR: cleanup and modularize handling for the ResetFlags and Reset methods
          of the IHost interface.

REFACTOR: centralize all output style handling performed by the default host.

REFACTOR: revise all the StringOps.Match method overloads, which now require an
          Interpreter (or null) as the first parameter.

REFACTOR: improve registry key handling in the SetupOps class, including better
          diagnostics and per-user support.  fix style issues with the registry
          key handling in the TclWrapper class.

REFACTOR: *BREAKING CHANGE* simplify interface for the Parser.SplitList method,
          by completely removing the boolean clear parameter and renaming the
          cache parameter to readOnly.

REFACTOR: *BREAKING CHANGE* enhance list index value processing to support the
          syntax variations "integer-end" and "end-end".

REFACTOR: *BREAKING CHANGE* add Stop method overload with no parameters to the
          ScriptThread class.

REFACTOR: *BREAKING CHANGE* in the official release builds, disable the script
          debugger integration and notifications for all expression operators
          and functions.

REFACTOR: *BREAKING CHANGE* rename several of the core library test files (e.g.
          bad-subst.eagle, bigdir.eagle, debugops.eagle, and delayout.eagle).

REFACTOR: *BREAKING CHANGE* add an ArgumentList parameter to the GetIdentifier
          method of the IEntityManager interface.

REFACTOR: *BREAKING CHANGE* for the TryParseFlagsEnum method of the EnumOps and
          Utility classes, add a boolean strict parameter.

REFACTOR: *BREAKING CHANGE* the Value.GetMatchMode2 method now requires an
          Interpreter (or null) as the first parameter.

REFACTOR: *BREAKING CHANGE* revise handling of options with the MustBeMatchMode
          flag set to use full flags enumeration handling (i.e. for MatchMode).

REFACTOR: *BREAKING CHANGE* all Engine.EvaluateScript method overloads that
          accept an IScript now perform script policy checking.

REFACTOR: *BREAKING CHANGE* make sure policies are passed a valid encoding when
          applicable.

REFACTOR: *BREAKING CHANGE* check BeforeScript policies when the script being
          read by the ReadScriptStream and ReadScriptFile methods did not come
          from an XML script block.

REFACTOR: *BREAKING CHANGE* revise handling of the encoding when dealing with
          XML documents from within the Engine class.

REFACTOR: *BREAKING CHANGE* pass the original script text to the script policy
          callback, not the line-ending translated script text.

REFACTOR: *BREAKING CHANGE* add WriteDebug/WriteError method overloads to the
          IDebugHost interface that require an integer character count and a
          boolean newline indicator as well as the foreground and background
          colors.

REFACTOR: *BREAKING CHANGE* revise output of the RuntimeOps.PluginFlagsToPrefix
          method and re-order the PluginFlags enumeration to improve clarity.

REFACTOR: *BREAKING CHANGE* rename the IAlias.InterpreterDisposed property to
          PostInterpreterDisposed.  add internal PreInterpreterDisposed event
          handling.

REFACTOR: *BREAKING CHANGE* rename existing ConsoleOps class to NativeConsole.
          add new (and different) ConsoleOps class that only deals with various
          (internal) aspects of the System.Console class.  streamline, cleanup,
          and robustify all managed and native console integration code.  also,
          show the MustBeOpenCount value in the default host.

REFACTOR: *BREAKING CHANGE* the -nocase option is always honored by the various
          [library] and [object] sub-commands that also have an option of type
          BindingFlags.

REFACTOR: *BREAKING CHANGE* move remaining tool data files into the tool data
          sub-directory.  also, move test data files into the new test data
          sub-directory.

REFACTOR: *BREAKING CHANGE* add EntityManager and InterpreterManager properties
          to the IInterpreter interface.

REFACTOR: *BREAKING CHANGE* move all chlid interpreter support methods from the
          IEntityManager interface to the new IInterpreterManager interface.

REFACTOR: *BREAKING CHANGE* move all callback queue support methods from the
          IEntityManager interface to the new ICallbackQueueManager interface.

REFACTOR: *BREAKING CHANGE* revise usage of the HeaderFlags enumeration by the
          default host.

REFACTOR: *BREAKING CHANGE* changes related to [object invokeraw], including:
          modifying several IScriptThread.AddObject method overloads to remove
          the aliasAll parameter and add an ObjectOptionType parameter.  also,
          modify the Utility.GetInvokeOptions and Utility.FixupReturnValue
          method overloads in a similar fashion.

FEATURE: make the ByteList class more helpful when dealing with byte arrays.

FEATURE: add support for adding/modifying settings that originate from array
         variables in the ScriptOps.LoadSettingsViaFile method.

FEATURE: add -limit option to the [regexp] command in order to limit the number
         of matches returned when the -all option is used.

FEATURE: add -raw option to the [hash] command to return a list of byte values
         instead of a hexadecimal string.

FEATURE: add -repeatCount option to the [test2] command.

FEATURE: add -novariables option to the [interp create] sub-command.

FEATURE: add -nocore and -nolibrary options to the [info commands] sub-command.

FEATURE: add -arrayaslink option to the core marshaller related sub-commands.
         this option and the associated trace callback allow a script variable
         to be tied directly to a System.Array object instance.

FEATURE: add sub-pattern support to [string match] and its associated methods.

FEATURE: add support for dictionary options to the universal option parser.

FEATURE: add [glob] command that is 99% compatible with the one in Tcl 8.4.

FEATURE: for the compileCSharp script library procedure, use the value of the
         global array element eagle_platform(csharpOptions) when building the
         list of C# compiler options.

FEATURE: support looking for script files to be evaluated via the list of files
         and/or directories contained in the auto_source_path script variable.

FEATURE: add [string cat] sub-command that implements most of the semantics
         described by TIP #429.

FEATURE: add -asynchronous option to the [debug shell] sub-command.  when this
         option is used, all other options are ignored.

FEATURE: support the Eagle Package for Tcl (Garuda) being loaded into TclKit
         shells and other statically linked Tcl environments.  also, allow a
         newly created (a.k.a. "isolated") Eagle interpreter to be used for
         each native Tcl interpreter, when using the new protocol version.

FEATURE: add support for an optional fifth argument to the [for] command that
         allows a script to be evaluated after the loop has exited.

FEATURE: enable the core library to automatically setup a Win32 console for the
         process when necessary, if the new OpenConsole interpreter creation
         flag is specified.

FEATURE: add -matchnameonly option to the [object members] sub-command to allow
         for matching against the simple name of the member while retaining all
         requested data regarding it.

FEATURE: add DatabaseVariable class to enable linking a script variable to the
         specified database column and row.

FEATURE: add an interpreter flag to prevent execution of interactive commands
         via the interactive loop.

FEATURE: enhance the updater tool to make it capable of performing a first-time
         installation.  also, allow skipping all extra strong name verification
         checks just in case the underlying platform does not properly support
         them.  finally, add the -reCheck command line option to the updater in
         order to support automatically checking for subsequent updates.

FEATURE: add [object invokeraw] sub-command and associated functionality.  this
         sub-command is primarily designed to be used for automating late-bound
         COM classes.

FEATURE: add GetAssemblyPublicKeyToken method to the Utility class.

FEATURE: add ScriptClientData class to make it easier to pass name/value data
         between components.

FEATURE: add -pluginArguments command line option.  this option requires two
         arguments, the name of a plugin that will be loaded at some point in
         the future and the argument string to pass during its initialization
         (i.e. via the "wrapped" IClientData it will receive).

FEATURE: support the MustBeLevel option flag, where the value is an ICallFrame
         instance.

FEATURE: add the ObjectFlagsAttribute class, which is used to declare the flags
         that should be added by the core marshaller when handling instances of
         classes marked with the attribute.

FEATURE: *BREAKING CHANGE* when available, keep track of the whole command that
         created every opaque object handle.  in order to make this new feature
         work properly, it is necessary to add an ArgumentList parameter to the
         appropriate IEntityManager.AddObject method overload.

FEATURE: *BREAKING CHANGE* add NewWebClientCallback property to the IInterpreter
         interface to allow third-party applications and plugins to override the
         default WebClient handling.  modify the DownloadData and DownloadFile
         methods of the Utility class by adding an Interpreter parameter.

FEATURE: *BREAKING CHANGE* adjust result format of [debug memory] and include
         the GCSettings.IsServerGC and GCSettings.LatencyMode property values,
         when available.

FEATURE: *BREAKING CHANGE* add the -startFile and -stopFile options to the test
         suite.  also, modify the [runAllTests] script library procedure to
         require two extra arguments which must contain either the starting and
         ending test file names or empty strings.

************************* Beta 1.0.5217.20046 RELEASE *************************

BUGFIX: *PERF* the IExecute cache should always be be used when looking up
        IExecute objects to execute, even when the ExactMatch engine flag is
        used.

BUGFIX: make the Variant class handle IOption values for use with the universal
        option parser.

BUGFIX: the ArgumentList constructor taking a variable number of arguments must
        correctly handle a string array of zero or more elements.

BUGFIX: make the methods of the ITclEntityManager interface honor the Validate
        lookup flag.

BUGFIX: the result of [file normalize ~] should be non-empty even if the value
        of $::env(HOME) is not a valid directory.

BUGFIX: if test suite usage of the [exec] command has been disabled, skip all
        tests that require it.

BUGFIX: make sure the MethodImplOptions.NoOptimization value is used only when
        it is available.

BUGFIX: fix the interactive #help command when a built-in interactive command
        has been overridden.

BUGFIX: for the console host, only display the Authenticode certificate subject
        in the console title if it is identical for the Eagle core library and
        the Eagle Shell.

BUGFIX: the IExecute cache should always contain the various wrapper objects.
        later, when the cache entry is fetched, it should be unwrapped if the
        caller specifies the appropriate lookup flag.

BUGFIX: the ErrorLine and PreviousResult properties should not be used within
        the core library from any place where the interpreter might have just
        been disposed.

BUGFIX: the LoadHostProfile method should support properties with the char and
        HostStreamFlags types.

REFACTOR: *PERF* for the ContextManager class, remove all superfluous uses of
          the ContainsKey method.

REFACTOR: when using methods of the Monitor class, make sure the value of the
          syncRoot field is not null.

REFACTOR: add private readyFlags field to the Interpreter class and revise the
          semantics associated with them.

REFACTOR: change the interpreter properties ParserLevels, ExpressionLevels,
          UnknownLevels, TraceLevels, WatchpointLevels, NotifyLevels,
          PolicyLevels, TestLevels, and _History to private.

REFACTOR: make handling of interactive extension command more extensible, via
          careful use of the IIdentifier and ISyntax interfaces.

REFACTOR: cleanup PlatformOps class and move some methods out of the CommonOps
          class into it.

REFACTOR: cleanup Debugger class and move some methods out to the DebuggerOps
          class.

REFACTOR: streamline the GetDelegate and GetModule methods of the Interpreter
          class.

REFACTOR: cleanup usage of the Interpreter.ArraySearches property.

REFACTOR: move all object related OptionDictionary definitions into the static
          ObjectOps class.

REFACTOR: revise the tests basic-1.54 and object-2.4 so that they can pass on
          Mono 2.10.

REFACTOR: optimize the line-ending translations performed via the engine when
          reading a script file.

REFACTOR: centralize all option processing related to the core FixupReturnValue
          method.

REFACTOR: add IEventManager instances to the list of well-known objects handled
          by the core marshaller.  revise handling of the Runtime object flag.

REFACTOR: revise the updater tool to improve support for automatic updating via
          silent mode.

REFACTOR: make the interactive #check command send the current patch level to
          the web server via the query string.

REFACTOR: make the updater tool send the current patch level to the web server
          via the query string.  also, make sure it always sends a user agent.

REFACTOR: display the RuntimeOptions property of the interpreter in the default
          host output.

REFACTOR: display the globalNamespace and pendingNamespaces fields of the
          interpreter in the default host output.  also, include the result of
          the AreNamespacesEnabled method as well.

REFACTOR: *BREAKING CHANGE* disallow creation of Event objects by third-party
          applications and plugins.

REFACTOR: *BREAKING CHANGE* add boolean force parameter to the PreInitialize,
          Initialize, and InitializeShell methods.

REFACTOR: *BREAKING CHANGE* include the InitializeShell method only if support
          for the interactive shell is being included as well.

REFACTOR: *BREAKING CHANGE* revise default values for options with the types
          X509RevocationMode, X509RevocationFlag, and X509VerificationFlags.

REFACTOR: *BREAKING CHANGE* rename the UpdateFile engine attribute to
          UpdatePathAndQuery.

REFACTOR: *BREAKING CHANGE* modify result formatting for [version] command.

REFACTOR: *BREAKING CHANGE* add a boolean argument to the interactive #check
          command to permit optional automatic updating.

REFACTOR: *BREAKING CHANGE* mark the -objectflags option to [object invoke] as
          "unsafe".

REFACTOR: *BREAKING CHANGE* evaluate finally blocks even if the script argument
          to the [try] command exits the interpreter.

REFACTOR: *BREAKING CHANGE* move all the MSBuild related files to their own
          directory.

REFACTOR: *BREAKING CHANGE* move all the strong name key files to their own
          directory.

REFACTOR: *BREAKING CHANGE* rename the IHost.Write method overload that takes a
          StringPairList to WriteFormat.

REFACTOR: *BREAKING CHANGE* rename HostTestFlags.TestCustomInfo to CustomInfo.

REFACTOR: *BREAKING CHANGE* revise the default header flags used by the #show
          command and reorder some of the flag values.

REFACTOR: *BREAKING CHANGE* add boolean argument to the WriteEngineInfo method
          of the IInformationHost interface to control whether information
          related to native code should be displayed.

FEATURE: add interactive #init command to initialize the script library for the
         interpreter or the shell.

FEATURE: add -setLoop command line option to allow control over whether or not
         the interactive loop will be entered.

FEATURE: add -setInitialize and -forceInitialize command line options to allow
         for finer grained control over script library initialization.

FEATURE: add support for the IdentifierKind.Ensemble value in the GetIdentifier
         method.

FEATURE: add ScriptBlocks class to permit third-party applications and plugins
         to easily process all scripts embedded within other content, such as
         web pages.

FEATURE: add DefaultTraceStack and TraceStack environment variables to enable
         the inclusion of managed call stack information with selected trace
         listener output.

FEATURE: add -arrayasvalue option to core marshaller related sub-commands that
         handle output arguments (i.e. those that use FixupByRefArguments).

FEATURE: add -full option to the [tcl find] sub-command to return full details
         for all results.

FEATURE: add ZeroMemory, IsUnixOperatingSystem, IsWindowsOperatingSystem,
         ProcessFixupReturnValueOptions, and GetFixupReturnValueOptions methods
         to the Utility class.

FEATURE: add -noPass to the [test2] command to suppress output showing that the
         test passed.

FEATURE: add an experimental and unsupported way to change default values for
         the object related -alias, -create, -nodispose, -synchronous, -trace,
         and -verbose options.

FEATURE: enhance the updater so that it is capable of updating and re-launching
         itself prior to checking for other updates.

FEATURE: modify the universal option parser to support resolving absolute and
         relative namespace names to their INamespace values.

FEATURE: add -namespace option to the [object load] sub-command that is used to
         set the namespace where any related command alias is to be created.

FEATURE: add the [object aliasnamespaces] sub-command to return the list of
         matching assembly namespace mappings.

FEATURE: add the [object unaliasnamespace] sub-command to remove the matching
         assembly namespace mappings.

FEATURE: add the [namespace info] sub-command to return diagnostic information
         about the specified namespace, command, or variable name.

FEATURE: *MAJOR* add full support for Tcl 8.4 compliant namespaces, including
         tests, with the exception of creative reading/writing.  in addition,
         the [namespace unknown] sub-command from Tcl 8.5 has been implemented.
         currently, namespace support is disabled by default (i.e. the legacy
         namespace behavior is used).  to enable, use the UseNamespaces flag
         when creating an interpreter.

FEATURE: add the [namespace enable] sub-command to query, enable, or disable
         namespace support for the current interpreter.

FEATURE: add -namespaces command line option to enable or disable namespace
         support for the shell interpreter.

FEATURE: add reversed color support to the built-in interpreter hosts for both
         the border and text output.

FEATURE: make it possible to execute the built-in (system) interactive commands
         even if they have been overridden.

************************* Beta 1.0.5173.31244 RELEASE *************************

BUGFIX: *PERF* major engine performance improvements, especially in handling of
        lists and list variables.

BUGFIX: for the [error] command, report the correct error line number when the
        optional errorInfo argument is supplied.

BUGFIX: when ending an external execution context, cleanup any namespaces that
        are pending deletion.

BUGFIX: return -1 for the [string first] and [string last] sub-commands when an
        empty string is used.

BUGFIX: in the [configureTcltest] procedure, also copy over the test names to
        match and/or skip.

BUGFIX: when creating an isolated application domain using the base path, make
        sure the assembly path is located underneath it prior to attempting to
        use the assembly path as part of the PrivateBinPath property.

BUGFIX: make sure the correct error message is returned upon failure to create
        an isolated child interpreter.

BUGFIX: modify the commands-1.1.3 test so that it requires the Tcl library and
        default shell versions to match (i.e. they must both be 8.6).  several
        changes to the test suite infrastructure were also necessary.

BUGFIX: fix missing test constraint for the sample plugin assembly file in the
        load-1.6 and load-1.7 tests.

BUGFIX: fix test portability with the package-1.1 and sql-1.12 tests.

BUGFIX: when searching for available native Tcl libraries, for use with the
        native Tcl integration subsystem, allow all the environment variables
        checked to specify either a file name or a directory name.  previously,
        only a file name could be specified successfully.

BUGFIX: use the full patch level of native Tcl libraries, if available, when
        picking the "best" native Tcl library for use with the native Tcl
        integration subsystem.

BUGFIX: fix missing return statement in the GetHostSize method for the default
        host.

BUGFIX: fix the [file glob], [file isdirectory], [file isfile], and [file size]
        sub-commands so that they will work properly with relative paths.

BUGFIX: prevent NullReferenceException being thrown by the GetLength methods of
        the Argument and Result classes.

BUGFIX: for the [lindex] command, fix error handling for bad indexes when the
        bad index is not the final index.

BUGFIX: grab and hold the interpreter lock while resolving type names, object
        names, and member names in the Value class.

BUGFIX: prevent the Eagle Package for Tcl (Garuda) from trying to call the
        configured shutdown method when the Tcl interpreter is not available.

BUGFIX: in the Eagle Package for Tcl (Garuda), save and restore the interpreter
        result when evaluating the Tcl logging script.

BUGFIX: in the Eagle Package for Tcl (Garuda), when cleaning up after a package
        load failure, unlock the Tcl mutex prior to calling the unload function
        to perform the actual cleanup.

BUGFIX: make sure the Eagle Package for Tcl (Garuda) exit handler gets called
        if the [unload] command was used with the -keeplibrary option.

BUGFIX: normalize usage of WinForms related test constraints.  add checking for
        the WinForms compile-option test constraint.

BUGFIX: the result of the [tcl module] sub-command should be a fully qualified
        file name.

BUGFIX: when using the interpreter host, the ShellMainCore method should honor
        the quietness semantics for the interpreter.

BUGFIX: correct the OptionFlags.Ignored enumeration value.

BUGFIX: the Eagle Native Utility Library (Spilornis) must support the same set
        of backslash escape sequences as the managed parser.  previously, the
        \\, \B, and \o backslash escape sequences were only implemented in the
        managed parser.

BUGFIX: fix the result of [file normalize /] on Windows.

BUGFIX: avoid potential deadlocks in various DebugOps and HostOps methods that
        accept an interpreter parameter while that interpreter is locked by
        another thread (e.g. it is being disposed).

BUGFIX: avoid potential deadlock when attempting to synchronously wait via the
        EventOps.Wait method.

BUGFIX: when variable object instances are reused, make sure all the reserved
        variable flags are unset.

BUGFIX: when splitting type names during a type search, take into account the
        type parameters (i.e. for generic types) and skip over them.

REFACTOR: streamline the PrivateGet* methods of the Interpreter class.

REFACTOR: add an optional boolean argument to the [interp aliases] sub-command
          to return all aliases.  by default, aliases reserved for library use
          are not returned.

REFACTOR: make sure that execution of the native Tcl shell and Fossil by the
          test suite can be completely disabled.

REFACTOR: add support for WiX version 3.8.

REFACTOR: for the default host, change output semantics for array variables to
          be more consistent, correct, and robust.

REFACTOR: cleanup handling of the InterpreterFlags property.

REFACTOR: via HostFlags, allow a host to declare that it does not handle calls
          to emit error and/or debug information (e.g. via DebugOps.Complain).

REFACTOR: modify the VariablesToString method to permit returning a list of
          undefined variables present in the current call frame.

REFACTOR: improve automatic detection of the test path when an embedded script
          library is in use.

REFACTOR: make the optional argument handling of all the interactive commands
          consistent.

REFACTOR: revise how the [parray] and [pdict] script library procedures query
          the host size.

REFACTOR: add a confirmation dialog to the updater project.  also, make the log
          messages more consistent and emit details when an invalid release or
          configuration is detected.

REFACTOR: use native delegates to bind to the native utility library, making it
          possible to dynamically load/unload it.  also, verify it was compiled
          with options that match the managed wrapper class.

REFACTOR: the interactive help subsystem now supports reporting the available
          interactive extension commands, including the associated syntax and
          descriptions, where available.

REFACTOR: change all methods in the GlobalState class that are not called from
          outside of it to private.

REFACTOR: break out most of the GlobalState.GetAutoPathList method into two
          methods; one that handles querying the interpreter path list and one
          that handles the shared path list.

REFACTOR: make sure all environment variables cause diagnostic messages to be
          printed during interpreter creation.

REFACTOR: move a lot of methods out of the RuntimeOps class into new classes.
          the new classes include AppDomainOps, DataOps, DebuggerOps, EventOps,
          HistoryOps, HostOps, ObjectOps, ProfileOps, ResultOps, ScriptOps,
          ShellOps, and TraceOps classes.

REFACTOR: the core marshaller should avoid using the ToString method of the
          Argument and Result classes.

REFACTOR: update Fossil tool w/source to version 1.28 (20140127173344).

REFACTOR: add GlobalUnknown and NamespaceUnknown properties to the IInterpreter
          interface.

REFACTOR: *BREAKING CHANGE* move Tcl entity management methods to the new
          ITclEntityManager interface.

REFACTOR: *BREAKING CHANGE* modify the [namespace unknown] sub-command so that
          it no longer changes the global unknown command handler.

REFACTOR: *BREAKING CHANGE* modify parameter order for flags arguments to the
          AddCommands, RemoveCommands, and RemoveFunctions methods.

REFACTOR: *BREAKING CHANGE* modify the Utility.Wait method to take a boolean
          parameter indicating if the call should timeout if the interpreter
          lock cannot be obtained before the specified time period elapses.

REFACTOR: *BREAKING CHANGE* modify IInformationHost.WriteVariableInfo method to
          take yet another boolean parameter that controls whether or not array
          search details are included.  modify [debug variable] and interactive
          #vinfo commands accordingly.

REFACTOR: *BREAKING CHANGE* in the Value class, all method overloads of the
          GetSingle, GetDouble, GetByte2, GetInteger2, and GetVariant methods
          that took a parameter of type Argument now take a parameter of type
          IGetValue instead.

REFACTOR: *BREAKING CHANGE* change the ShellMainCore arguments parameter to the
          IEnumerable<string> type.

REFACTOR: *BREAKING CHANGE* the Utility.SetEnvironmentVariable method now takes
          three parameters.

REFACTOR: *BREAKING CHANGE* modify the PathOps.CombinePath method in an attempt
          to honor the existing directory separator characters found within the
          paths to be combined.  also, modify all callers to pass null instead
          of false.

REFACTOR: *BREAKING CHANGE* move all delegates not that should not be needed by
          external callers to a private namespace and mark them as internal.

REFACTOR: *BREAKING CHANGE* revise how missing version components are handled
          when the native Tcl integration subsystem searches for installed Tcl
          library builds.

REFACTOR: *BREAKING CHANGE* rename the osBits element of the tcl_platform array
          to platformBits.

REFACTOR: *BREAKING CHANGE* replace the -maximum option of the [host size]
          sub-command and with the -sizetype option, which takes a HostSizeType
          enumeration value.  add the -sizetype option to the [host reset]
          sub-command.

REFACTOR: *BREAKING CHANGE* change the ResetSize, GetSize, and SetSize methods
          of the IHost interface to require a HostSizeType as their first (or
          only) parameter.  also, remove the GetMaximumSize and SetMaximumSize
          methods.

REFACTOR: *BREAKING CHANGE* modify the order of the optional arguments for the
          interactive #check command.

REFACTOR: *BREAKING CHANGE* cleanup interpreter readiness checking and remove
          the NoReady and StackOnly interpreter flags.

FEATURE: expose SignalVariableDirty method via the Utility class for use when
         implementing custom variable trace callbacks.

FEATURE: add experimental [interp readylimit] sub-command to limit the full
         readiness checks performed by the engine to every N readiness checks.

FEATURE: add -noready option to all [parse] sub-commands.

FEATURE: add optional boolean argument to the [info previouspid] sub-command to
         force the previous process Id to be reset.

FEATURE: add -processid option to the [exec] command in order to specify the
         name of a variable that should be modified to contain the Id of the
         started process or zero if the process was not started.

FEATURE: add the [callback count] and [callback list] sub-commands to allow for
         introspection of the callback queue.

FEATURE: add -unlinkonly option to the [unset] command to remove the specified
         link to the target variable instead of the target variable itself.
         this option only works with the variables links themselves and has no
         effect when unsetting normal variables.

FEATURE: add break-on-leak support to the test suite infrastructure.

FEATURE: add interactive #seflags command to display or set the shared engine
         flags for the interactive interpreter.  rename interactive #eflags
         command to #ceflags.

FEATURE: add the [interp enabled] sub-command and the Enabled property to the
         IInterpreter interface to control whether or not an interpreter will
         accept evaluation and substitution requests.

FEATURE: add GetTclPatchLevel method to the ITclManager interface.

FEATURE: add _Hosts.Wrapper class, which wraps an IHost implementation and then
         allows it to be easily customized, via inheritance and delegation.

FEATURE: add Restricted flag to the ScriptThread class that prevents any method
         other than Queue or Send from being invoked successfully.

FEATURE: add FinallyTimeout property to the IInterpreter interface in order to
         support runaway finally blocks being canceled automatically after the
         specified number of milliseconds.  also, add [interp finallytimeout]
         sub-command to query or set this value easily via scripts.

FEATURE: add "y" length modifier to [format] to permit formatting byte values.

FEATURE: support disabling selected diagnostic messages during library startup
         using the NoVerbose environment variable.

FEATURE: add -argv and -text options to the [test2] command, used when creating
         isolated test interpreters.

FEATURE: add -anyInitialize command line option to evaluate a script whether or
         not the script library has been initialized.

FEATURE: add -library command line option to manually override the core script
         library path.

FEATURE: add -interactive option to the [info commands] sub-command to return
         procedures that were intended for use with the interactive shell.

FEATURE: add GetPackageAssemblyName and GetProcessorArchitecture methods to the
         Utility class.

FEATURE: add the [tcl versionrange] sub-command to return a list of versions
         that fall within the specified minimum and maximum versions.

FEATURE: in the Eagle Package for Tcl (Garuda), add the [garuda bridgerunning]
         sub-command, which returns non-zero if the bridge has been started.

FEATURE: add preliminary support for running on the ARM processor architecture,
         paying special attention to the native stack checking.

FEATURE: support overriding the base directory for the core library via the
         EAGLE_BASE environment variable.

FEATURE: add [interp readorgetscriptfile] sub-command to read and return the
         textual content of the local or remote script file.

FEATURE: support the evaluation of matching update scripts via the interactive
         #check command.

FEATURE: for the [test1] and [test2] commands, support the pseudo-constraints
         "fail.false" and "fail.true" to support declaring that a test cannot
         cause the current test run to return an overall failure result.

FEATURE: *BREAKING CHANGE* attempt to increase security when handling options
         of type SecureString.  this will not work on all platforms nor in all
         situations.  also, allow such options to refer to an existing opaque
         object handle with a value of type SecureString.

FEATURE: *BREAKING CHANGE* modify the MakeSafe and MakeStandard methods of the
         ISecurityManager interface to take a MakeFlags parameter instead of a
         second boolean parameter.

FEATURE: *BREAKING CHANGE* add ExtraStackSpace property to the IInterpreter
         interface.

FEATURE: *BREAKING CHANGE* add support for the \U backslash escape in the core
         script parser.  code points exceeding 16-bits will be returned as
         two characters.

FEATURE: *BREAKING CHANGE* for the [lindex] command, support returning multiple
         elements by attempting to interpret each index specifier as an index
         list if it cannot be parsed as a simple index.

************************* Beta 1.0.5000.25377 RELEASE *************************

BUGFIX: *MAJOR* prevent a script error from being generated when using [unset]
        with the -nocomplain option on a non-existing array element within an
        existing array.

BUGFIX: make sure that CommandCallback object instances cannot be created nor
        used while the associated interpreter is being disposed.

BUGFIX: prior to iterating over the hidden commands for an interpreter, make
        sure they are still available.

BUGFIX: make sure that freeing the context manager instance does not throw an
        ObjectDisposedException.

BUGFIX: by default, always flag opaque object handles for the event parameters
        used by the CommandCallback class as NoDispose.

BUGFIX: in the TclWrapper.DoOneEvent method, always verify that the module is
        not null before attempting to call the VerifyModule method on it.

BUGFIX: fix use of the SETLOCAL command by the fn_UnquoteVariable subroutine in
        the various batch tools.

BUGFIX: modify classes implementing the IDisposable pattern to set the disposed
        flag after their base classes have been disposed.

BUGFIX: fix the ticks-per-microsecond calculation for [clock microseconds].

BUGFIX: when resolving commands using prefix matching, check for an exact match
        first to avoid situations where an approximate match of a command would
        override an exact match of a hidden command.

BUGFIX: for the PowerShell cmdlet, make sure the CheckDisposed method is called
        by all public members.  also, do not catch all exceptions thrown by the
        WriteDebug and WriteVerbose methods.

BUGFIX: fix detection of excess arguments by the [tcl resetcancel] sub-command.

BUGFIX: the [file executable], [file readable], and [file writable] sub-commands
        should never return an error result, even if the file permissions cannot
        be determined.

BUGFIX: make sure the effective plugin flags are passed to the interpreter from
        the [load] and [unload] commands.

BUGFIX: cleanup the command aliases used by the test suite to help emulate the
        Tcltest package.

BUGFIX: allow parameters declared as object to support conversion to and from
        array script variables as well as to scalar script variables that are
        either null or empty.

BUGFIX: make sure the ScriptBinder gets a chance to perform ToString conversion
        operations on its registered types (e.g. DateTime) as well as the types
        provided by third-party applications and/or plugins.

BUGFIX: in the ScriptBinder, fix detection of types that can be automatically
        converted from a string.  this issue caused the FixupReturnValue method
        to create opaque object handles when it should have simply returned the
        string representation of the object for some non-primitive types.  this
        issue has been present since the beta 7 release in late 2010.

BUGFIX: prevent the interactive #vinfo command from being used from a different
        application domain.

BUGFIX: never dispose of any contexts for an interpreter on non-primary threads
        if the interpreter is still active (i.e. it has entries on the active
        interpreter stack for the thread).

BUGFIX: attempt to prevent any private field from being accessed directly from a
        different application domain.

BUGFIX: fix cross-application domain marshalling issue in the engine when parse
        tokens containing variable references.  also, the engine should be able
        to handle null result values when attempting to query a variable value.

BUGFIX: stop stripping off trailing slashes when normalizing root paths.

BUGFIX: all interactive commands should make sure the interactive host is valid
        prior to using it.

BUGFIX: fix incorrect AssemblySourceId and AssemblySourceTimeStamp values being
        produced by the build version tagging tool when dealing with plugin
        source code checkouts that just so happen to be nested within the main
        Eagle source code checkout directory.  also, fix missing trailing tab
        characters in UpdateMode when dealing with multiple lines of output.

BUGFIX: in the core marshaller, stop treating any string that can be converted
        to a StringList as one for the purposes of method overload matching.

BUGFIX: prevent a FormatException caused by an incorrect format string used to
        implement the -debug option to [exec].

BUGFIX: add missing call to CheckDisposed in one of the QueueTclThreadEvent
        method overloads of the ITclManager interface.

BUGFIX: add several possible NuGet staging directories to the clean tool.

BUGFIX: for the [host writebox] sub-command, enforce having the correct number
        of non-option arguments.

BUGFIX: skip prompting the user to cancel the running script when the host is
        actively trying to read user input.

BUGFIX: improve open/closed detection in the built-in console host.

BUGFIX: for the default host, when attempting to retry a WriteBox operation due
        to an out-of-space condition, make sure that the number of BeginBox and
        EndBox method calls match.

BUGFIX: prevent the interactive loop from raising exceptions when accessing the
        interactive host to read input.

BUGFIX: the [sql close] sub-command should return an empty string upon success.

BUGFIX: avoid using the syncRoot field of the interpreter from outside its own
        instance.  add a new internal property InternalSyncRoot to minimize the
        impact of this fix.  also, avoid using private interpreter fields from
        the static Interpreter.Ready method.

BUGFIX: modify the Interpreter.GetPluginCommands method so that it takes hidden
        commands into account.

BUGFIX: modify the ".args" file processing to append all the arguments read to
        the end of the existing command line.

BUGFIX: fix method name handling used by the DebugOps.GetMethodName method.

BUGFIX: stop using IntPtr.ToInt32 in the diagnostic messages related to native
        module handles.

BUGFIX: the TclWrapper.AddModuleReference method should use try/finally to get
        transactional semantics when loading the native Tcl module.

BUGFIX: the TclWrapper.DoOneEvent method should verify that the native Tcl
        module is still loaded prior to each call into the native Tcl API.

BUGFIX: make it so the InteractiveLoop method works properly for an interpreter
        in a different application domain.

BUGFIX: honor the pattern argument to the [info policies] sub-command.

BUGFIX: lock access to the private data fields of the console host.

BUGFIX: *BREAKING CHANGE* when compiled with support for isolated application
        domains, make the CallFrame class derive from ScriptMarshalByRefObject
        class, to fix script evaluation between application domains when a call
        frame is already active.

BUGFIX: *BREAKING CHANGE* the [try] command now calls the Engine.ResetCancel
        method, by default, just prior to evaluating the finally block script.

BUGFIX: *BREAKING CHANGE* do not cache any XmlSchema objects used for XML schema
        validation in the XmlOps class.  remove the namespaceUri parameter from
        the Utility.Validate method and add a serializerNamespaces parameter to
        the Utility.Serialize method.

REFACTOR: optimize access to the script text in the Engine.EvaluateTokens and
          Engine.SubstituteTokens methods.

REFACTOR: improve consistency of the interactive command help text. also, add
          optional arguments to the interactive #usage and #version commands to
          allow finer control over their output.

REFACTOR: update Fossil tool w/source to version c107d5059640b0ee.

REFACTOR: modify the [debug paths] sub-command to accept an optional boolean
          argument that controls whether only the auto-path components are
          returned.

REFACTOR: add beta NuGet package to be used for feature prototyping and release
          testing.

REFACTOR: prevent interactive command exceptions from causing problems with the
          interactive loop.

REFACTOR: add experimental code to protect against using a System.Console that
          has been closed without being reopened.

REFACTOR: update the [format] and [lmap] Tcl tests from upstream.

REFACTOR: keep track and log the name of the test suite being run.  also, keep
          track of and report the total count of each object type leaked by the
          test files included in the current test suite run.

REFACTOR: various enhancements to the updater project, including logging and
          handling of in-use files.

REFACTOR: move database connection creation logic into the RuntimeOps class and
          call it from the [sql] command implementation.

REFACTOR: modify the test suite to better support alternative database types.

REFACTOR: add support for the EllipsisLimit environment variable, which can be
          used to override the length limit for elided text that would otherwise
          use the default length limit.

REFACTOR: carefully eliminate all remaining usage of private interpreter fields
          from within the core library, adding internal properties and methods
          where necessary.

REFACTOR: modify the ReadInteractiveInput method in an attempt to cleanly handle
          thread abort exceptions received from other threads while waiting for
          input in the interactive loop.

REFACTOR: for the interactive #version command, output the version information
          for system plugins first and add visual indicators for the important
          plugin flags.

REFACTOR: cache the certificate subject result queried by the console host.

REFACTOR: modify the IDebugger interface to require an Interpreter parameter on
          all the breakpoint related methods.

REFACTOR: in the sample project, add quick demonstration of augmenting and/or
          overriding the script binder used by the interpreter.

REFACTOR: make test suite count and timestamp reporting more consistent.  also,
          report the elapsed time taken by the tests being run.

REFACTOR: modify the [fcopy] command to better support writing binary data.
          also, any error from the Engine.CheckEvents method should result in
          the copy operation being aborted.

REFACTOR: make sure all executable files to be released have their Authenticode
          signatures checked by the release preparation tool.

REFACTOR: *BREAKING CHANGE* for the IValue interface, move the Value, String,
          and Length properties to the new IGetValue and ISetValue interfaces.
          also, move the ClientData, ValueData, and ExtraData properties to the
          new IValueData interface.

REFACTOR: *BREAKING CHANGE* modify the Value property of the Argument class to
          be read-only.

REFACTOR: *BREAKING CHANGE* add two parameters to the WriteCallFrame method of
          the IInformationHost interface.

REFACTOR: *BREAKING CHANGE* rename the ICallFrame.Link property to Next.  also,
          add Other, Previous, and FrameLevel properties to the ICallFrame
          interface.

REFACTOR: *BREAKING CHANGE* modify the [parse script] sub-command so that it
          emits a separator token between each set of parsed command tokens.

REFACTOR: *BREAKING CHANGE* rename the -start option of the [parse command],
          [parse expression], and [parse script] sub-commands to -startindex.

REFACTOR: *BREAKING CHANGE* modify public static methods of the ScriptLocation
          class to require an Interpreter parameter.  also, add static factory
          methods, make all the constructors private, and fix private member
          accessibility.

REFACTOR: *BREAKING CHANGE* add HostStreamFlags parameter to the GetStream
          method of the IEngineHost interface.  add StreamFlags property to the
          IEngineHost interface.

REFACTOR: *BREAKING CHANGE* rename the method Utility.GetInteractiveCommandHelp
          to Utility.GetInteractiveCommandHelpItem.

REFACTOR: *BREAKING CHANGE* modify the error raised by [encoding system] when
          the optional encoding argument is supplied.

REFACTOR: *BREAKING CHANGE* modify the implementation of the [encoding names]
          sub-command to allow encodings from the interpreter to replace system
          encodings in the returned list.

REFACTOR: *BREAKING CHANGE* modify Interpreter.ShellMainCore method to accept
          optional delegates that allow the script evaluation and interactive
          loop semantics used by the shell to be overridden.  add IShellManager
          interface to expose these delegates via properties of the Interpreter
          class.  also, rename the old ShellArgumentCallback delegate type to
          ArgumentCallback.

REFACTOR: *BREAKING CHANGE* add UseAttach property to the IHost and IHostData
          interfaces and add a UseAttach flag to the CreateFlags enumeration.
          also, support the UseAttach environment variable.

REFACTOR: *BREAKING CHANGE* add Flush method to the IInteractiveHost interface.

REFACTOR: *BREAKING CHANGE* add new IExecuteRequest interface to the IPlugin
          interface.  also, add TypeName to the IPluginData interface.

FEATURE: add new TCL_EVAL_SOURCE_IN_FRAME and TCL_EVAL_NORESOLVE flag values
         from the native Tcl project for use with the native Tcl integration
         subsystem.

FEATURE: the Eagle Package for Tcl (Garuda) testing infrastructure now supports
         setting the -baseDirectory option, which is used to skip the automatic
         detection of the base directory.  also, check for the test suffix when
         determining the file name of the native package DLL during testing.

FEATURE: add -noArgumentsFileName command line option to skip processing of the
         arguments file name, if it exists.

FEATURE: add the Eagle Native Utility Library (Spilornis) to provide for faster
         joining and splitting of list elements.

FEATURE: add [info cmdtype] sub-command that implements most of the semantics
         described by TIP #426.

FEATURE: add tcl_platform(processorAffinityMasks) element that will contain the
         processor affinity masks for the process.

FEATURE: support the SecureString type in the Option and Variant classes.

FEATURE: add -domainname, -username, and -password options to the [exec]
         command.

FEATURE: add [clock start] and [clock stop] sub-commands for the high-precision
         measurement of elapsed time.

FEATURE: add [downlevel] command to evaluate a script using the call frame that
         was in use prior to the latest [uplevel] command being executed.  this
         idea was borrowed from the downeval function in the LIL language.

FEATURE: add -newnamevar option to the [rename] command.

FEATURE: add -roundtrip option to the [parse script] sub-command.

FEATURE: for the PowerShell cmdlet, add [cmdlet] meta-command to help interact
         with the PowerShell environment during script evaluation.

FEATURE: add [host redirected] sub-command to return a boolean indicating
         whether or not the specified standard channel is currently redirected.

FEATURE: add [host query] sub-command to return an implementation defined list
         of internal state information.

FEATURE: add [info programextension] sub-command to return the file extension
         for the assembly that started the process.

FEATURE: import word.tcl file verbatim from the native Tcl 8.4 script library
         and integrate it into the Eagle script library.

FEATURE: add [tcl queue] sub-command to allow Tcl scripts to be evaluated using
         isolated Tcl threads.

FEATURE: add -nested option to the [parse command] and [parse script]
         sub-commands.  add -filename, -currentline, -syntax, and -strict
         options to the [parse script] sub-command.

FEATURE: add [debug purge] sub-command to remove all undefined variables from
         the current call frame.

FEATURE: add -streamflags option to the [open] command.

FEATURE: enhance interactive command help to support logically grouping related
         interactive commands together into their own help topics, to make it
         easier to discover the functionality provided by the interactive shell.

FEATURE: add -break command line option to force a managed debugger break prior
         to processing any further command line options.

FEATURE: add static InteractiveLoopThread method to the Interpreter class.

FEATURE: add _Commands.Ensemble base command implemenation for use by external
         applications and plugins.  this command is used to provide an easy to
         use, extensible ensemble implementation.

FEATURE: add the AsynchronousBridge class and IAsynchronousCallback interface.
         in addition, modify the AsynchronousContext class to derive from the
         ScriptMarshalByRefObject class.  these changes are necessary to allow
         asynchronous script completion callbacks to be received by components
         running in isolated application domains.

FEATURE: add [file rootpath] sub-command to return the root path associated with
         the specified file name.

FEATURE: add ByRef argument flags to make them capable of having the same level
         of control over the return value marshalling, as the individual binary
         marshalling options do.

FEATURE: add interactive #sresult command to store the last interactive command
         result into the specified script variable.

FEATURE: add EvaluateTrustedScript, EvaluateTrustedFile, EvaluateTrustedStream
         methods to the IEngineManager interface to allow easy evaluation of
         fully trusted scripts by third-party applications and/or plugins using
         "safe" interpreters.

FEATURE: add StrongNameTag to the [info engine] sub-command.  add full support
         for the strong name tag attribute.  add an official pre-release strong
         name key.

FEATURE: add the -marshalflags option to the [object create], [object invoke],
         and related commands.

FEATURE: add IScriptBuilder interface and its associated class to support
         building up scripts dynamically (i.e. from script fragments and/or
         commands).

FEATURE: add CreateDbConnection, FormatDelegateMethodName, GetAssemblyTag,
         GetAssemblyText, GetBasePath, GetErrorMessage, IsBase64, IsMono,
         LoadAssemblyFromStream, MakeRelativePath, SearchForFile, and Wait
         methods to the Utility class.

FEATURE: support random ordering of files evaluated by the test suite.

FEATURE: add [xml validate] sub-command to validate an XML document against an
         XML schema.

FEATURE: add [package info] sub-command to return the properties of a package.
         also, keep track of which script file (i.e. package index) was active
         when a package was added to the interpreter via the [package ifneeded]
         or [package provide] sub-commands.

FEATURE: add [sql types] sub-command to return the combined list of primary and
         auxiliary database connection types.

FEATURE: add -nested option to the [sql execute] sub-command for use with the
         list and dictionary formats.

FEATURE: add -trimall option to the [exec] command to remove all surrounding
         whitespace from the captured output.

FEATURE: add [debug cleanup] sub-command to perform general cleanup of the
         interpreter and/or garbage collect unused managed memory.

FEATURE: add [encoding getstring] sub-command to convert and return the string
         that corresponds to the specified byte array opaque object handle.

FEATURE: add interactive #toldvalue command to allow the TraceInfo old value to
         be set during debugger watchpoints.

FEATURE: *BREAKING CHANGE* rename interactive #tvalue command to #tnewvalue.

FEATURE: *BREAKING CHANGE* add QueryState method to the IInteractiveHost
         interface to return an implementation defined list of internal state
         information (e.g. as name/value pairs) or null if no such information
         is available.

FEATURE: *BREAKING CHANGE* add eagle_paths script variable to help control how
         path resolution for script-visible files takes place within the context
         of an interpreter.  this variable is ignored for "safe" interpreters.

FEATURE: *BREAKING CHANGE* add LoadPlugin method overload to the IPluginManager
         interface that supports loading a plugin from an array of bytes.  this
         works with the isolated plugins feature as well.

FEATURE: *BREAKING CHANGE* add NoPackageUnknown interpreter flag and enable it
         by default.

FEATURE: *BREAKING CHANGE* add IsParentInterpreter method to the IEntityManager
         interface.

FEATURE: *BREAKING CHANGE* add FindPlugin method to the IPluginManager
         interface.

FEATURE: *BREAKING CHANGE* add DateTimeFormat and DateTimeKind properties to the
         IInterpreter interface.  these properties can be used to influence the
         automatic DateTime type conversions performed by the core marshaller.

FEATURE: *BREAKING CHANGE* add AddStandardTclBridge method to the ITclManager
         interface.

FEATURE: *BREAKING CHANGE* add GetTclVariableValue, SetTclVariableValue, and
         UnsetTclVariableValue methods to the ITclManager interface.

FEATURE: *BREAKING CHANGE* add GetMaximumSize and SetMaximumSize methods to the
         IHost interface.  technically, this is a breaking change; however, for
         all hosts that derive from the default host, implementing these new
         methods is purely optional because the base class provides suitable
         default implementations.  also, add -maximum option to the [host size]
         sub-command.

************************* Beta 1.0.4807.22448 RELEASE *************************

BUGFIX: *MAJOR* fix the [array set] command so that it only replaces the entire
        array value for a variable when no existing array values exist.  also,
        when firing the variable traces for the array, make sure the dictionary
        of new elements includes all the old elements as well.

BUGFIX: modify handling of flags for array elements to prevent throwing needless
        OutOfMemoryException instances.

BUGFIX: prevent the [getFiles] test package helper procedure from returning any
        directories or non-regular files.

BUGFIX: gracefully handle exceptions thrown when dealing with the native stack
        checking LocalDataStoreSlot objects.  this applies primarily when using
        the Thread.GetData and Thread.SetData methods.

BUGFIX: prevent procedures flagged as read-only from being redefined.

BUGFIX: make sure errors that occur when creating the isolated interpreter are
        returned properly when using the [debug setup] sub-command.

BUGFIX: modify argument count checking for the [invoke] command to take into
        account that the level is an optional argument.

BUGFIX: using [string is list -strict] on an empty string should return true.

BUGFIX: fix typo in the syntax error message for the [sql connection] command.

BUGFIX: fix typo in the RuntimeOps.GetArgumentsFileName method.  also, add help
        text for the ".args" file processing performed by the shell.

BUGFIX: make sure the BreakpointType.All value includes all possible breakpoint
        types.

BUGFIX: prevent the per-thread TraceInfo object from being used accidentally
        when system variables are modified due to interpreter properties being
        changed.  also, prevent it from being used by the reference counting
        plugin when any traces or watchpoints are active.

BUGFIX: fix the [::Eagle::testPuts] shim procedure in the Eagle test package so
        that it will emit a line-feed when only one argument is supplied by the
        caller.

BUGFIX: support resetting the Tcl script cancellation flags for Tcl interpreters
        associated with TclThread objects.

BUGFIX: prevent a superfluous error message about native Tcl resource disposal
        being on the wrong thread when it is not actually the wrong thread.

BUGFIX: fix the error messages returned by the TclWrapper.Load method when no
        child error messages are returned from the Find and/or Select methods.

BUGFIX: revise reference counting (and locking) semantics for the TclModule
        collection to prevent some subtle race conditions between the DoOneEvent
        and Unload methods of the TclWrapper class.

BUGFIX: make sure the event wait handle names are unique within the application
        domain.

BUGFIX: make sure the threads created for the TclThread class have names unique
        within the application domain.

BUGFIX: make sure the dynamically created assembly, module, and type names are
        unique within the application domain.

BUGFIX: add missing call to CheckDisposed in the Interpreter.ClearCache method.

BUGFIX: make sure the NoPostProcess variable flag is honored for all calls into
        the script variable subsystem.

BUGFIX: the RuntimeOps.IsHostOpen method should return true when input is being
        redirected.

BUGFIX: *BREAKING CHANGE* fix race condition in the TclThread class when events
        are sent using the native Win32 API.  this required adding a Delegate
        property to the IEvent interface.

BUGFIX: *BREAKING CHANGE* rework the native Tcl resource disposal pipeline in
        the Interpreter class to avoid holding locks when dealing with TclThread
        objects.  unfortunately, as a consequence of this, the UnloadTcl method
        can no longer be guaranteed to be thread-safe.

BUGFIX: *BREAKING CHANGE* remove the alias and its associated command from the
        source interpreter if the target interpreter is disposed first.  this
        fix required adding a SourceInterpreter property to the IAliasData
        interface.

REFACTOR: make the [file executable], [file readable], and [file writable]
          sub-commands work when running on Mono.

REFACTOR: enhance handling of the machine and platform by the test suite.

REFACTOR: add a third element containing the method name to the errorCode when
          an exception is caught and/or handled by the script engine.

REFACTOR: add host size to the default host output.  also, revise handling of
          out-of-space conditions in the WriteBox method of the default host.

REFACTOR: modify [string format] sub-command implementation to detect Mono and
          work around the MissingMethodException being thrown if the three (or
          more) argument overload of the String.Format method is invoked via
          reflection.

REFACTOR: modify various tests to be more compatible with legacy versions of
          Mono (e.g. 2.0 and 2.2).  add the MONO_LEGACY compile-time option to
          allow code that is problematic for Mono 2.0 and/or 2.2 to be omitted
          when compiling.

REFACTOR: add a test constraint for those tests that stress the native stack
          checking code.

REFACTOR: make calls into the DebugOps.Complain method consistently use any
          available interpreter context.  also, make the two parameter overload
          of the DebugOps.Complain method fetch the interpreter from the active
          interpreter stack.

REFACTOR: add built-in method parameter type conversions from string to types
          List<string>, IList<string>, ICollection<string>, IEnumerable<string>,
          and IStringList.

REFACTOR: make the Complaint property of the Interpreter per-thread, via the
          engine context.

REFACTOR: comment and style cleanup for the Example and TclSample projects.

REFACTOR: add a one parameter overload for the ReturnCodeToExitCode method of
          the Utility class.

REFACTOR: in the TclThread.EventCallback method, make sure the interpreter and
          tclApi fields are not null prior to using them.

REFACTOR: make sure the immutable and read-only properties of the Interpreter
          class are applied consistently.

REFACTOR: error messages originating from the DebugOps.Complain method will no
          longer cause a message box to show up on secondary threads.

REFACTOR: when possible, use the TclApi.GetTclApi and TclApi.SetTclApi methods
          to access the tclApi field, especially from the TclBridge class, the
          TclThread class, and the [tcl] command implementation.

REFACTOR: cleanup the main loop code in the TclThread class.  move duplicated
          code to the new DoOneEvent and WasAnyEventSignaled methods.  signal
          the "start" event when the new thread is ready to receive events and
          add a WaitForStart method to allow callers to wait for this new event.
          skip calling the Shutdown method during object disposal if the target
          thread has already been shutdown.  add Dispose EventType to properly
          dispose of all associated bridged Tcl commands as well as delete the
          associated Tcl interpreter (this also required adding the ability for
          a TclBridge object to know that it belongs to a TclThread object).
          improvements to diagnostic messages.

REFACTOR: modify how the [time] command handles the Break and Continue return
          codes.  also, a negative number of iterations other than -1 will run
          only once; however, its absolute value will be used when calculating
          the final result.

REFACTOR: make logging in the updater project more consistent, especially for
          the property values of the Configuration and Release classes.  also,
          for the F1 help, only display shortcut keys that will actually work
          based on the current configuration.

REFACTOR: modify the Argument and Result classes to support implicit conversions
          from the StringDictionary class.

REFACTOR: modify the custom strong name signing related MSBuild targets allow
          them to work properly without the .NET Framework 2.0 SDK installed
          when the MSBuild property StrongNameWithoutSdk is set to true.

REFACTOR: add an overload of the StringDictionary.Add method that allows the
          dictionary provided by the caller to be null (i.e. if the strict
          parameter is false).

REFACTOR: modify the GetAllTestInformation method to support returning only the
          names of the test array elements.

REFACTOR: modify the [debug break] sub-command so that it will not break into
          the debugger unless the BreakpointType.Demand flag is present in the
          IDebugger.Types property value.

REFACTOR: stop using the C# break statement and move the interactive #go, #run,
          #break, and #halt commands to the InteractiveOps class.

REFACTOR: in the interactive loop, only display the local error line number if
          it has been set by the current command.

REFACTOR: move the GetDefaultPrompt method to the RuntimeOps class.

REFACTOR: support building the Eagle Package for Tcl (Garuda) using TEA for the
          Visual C++ 6.0 or later build environment, including 64-bit versions,
          where applicable.  also, add the necessary tooling support to allow
          the package test suite to be easily run in this environment.  also,
          support building and/or downloading Eagle via the TEA makefile, for
          the purpose of integration with the Eagle Package for Tcl (Garuda).

REFACTOR: move several path fragment constants from the EnvVars class to the
          _Path class.  also, remove two path fragment constants that are now
          obsolete.  add help text for the environment variables related to the
          finding the script library directory and the native Tcl integration
          subsystem.

REFACTOR: permit "safe" interpreters to use the [info appdomain] sub-command.

REFACTOR: on the IDebugger interface, add the CheckInterruptCallback method and
          move all properties to the new IDebuggerData interface and then add
          the CallbackArguments property.

REFACTOR: remove superfluous calls to the RuntimeOps.SplitVariableName method
          from within the script variable subsystem in the Interpreter class.

REFACTOR: make sure the list of script library procedures exported to Tcl are
          consistent and include all compatible procedures.

REFACTOR: simplify the implementation of the [list] command.

REFACTOR: optimize common usage patterns for the [lappend] command.  also, add
          -variable option to the [lsearch] command to optimize searching for a
          list element in a list contained within a named script variable.

REFACTOR: use save/restore semantics for the flags in the Variable.FireTraces
          method.  also, show the type of variable values in the default host.

REFACTOR: update Fossil tool w/source to version ab9b449190c7da30.

REFACTOR: add undocumented, internal parameter capable of manually overriding
          the default initial capacity for all newly created array element
          dictionaries.

REFACTOR: *BREAKING CHANGE* add EngineData property to the ICallFrame interface
          for future use by the core library only.

REFACTOR: *BREAKING CHANGE* add ExtraData property to the IValue interface.

REFACTOR: *BREAKING CHANGE* rename values in the VariableFlags enumeration to
          include the word mask when they are used in that context.

REFACTOR: *BREAKING CHANGE* on the ICallback interface, move all properties to
          the ICallbackData interface and then add the ObjectFlags property.

REFACTOR: *BREAKING CHANGE* remove all the unused interpreter parameters from
          methods in the Value class.

REFACTOR: *BREAKING CHANGE* remove all the boolean strict, verbose, noCase, and
          noNested parameters from methods in the Value class.

REFACTOR: *BREAKING CHANGE* add ToString method overloads to the IStringList
          interface that include the empty boolean parameter and modify the
          other ToString method overloads to make use of them.

REFACTOR: *BREAKING CHANGE* add cached boolean parameter to the WriteTraceInfo
          method of the IInformationHost interface.

REFACTOR: *BREAKING CHANGE* add an InterpreterDisposed property to the IAlias
          interface.  this is necessary to facilitate being able to remove the
          referenced delegate from the list of interpreter disposal callbacks
          for the target interpreter during alias removal.

REFACTOR: *BREAKING CHANGE* add an AdjustColors method to the IHost interface.

REFACTOR: *BREAKING CHANGE* add an IsCanceled method to the IEngineManager
          interface.

REFACTOR: *BREAKING CHANGE* on the IScriptEventArgs interface, rename the Types
          property to NotifyTypes and the Flags property to NotifyFlags and add
          an InterruptType property.

FEATURE: add TargetFramework to the [info engine] sub-command to query the
         target framework of the library.  also added the associated element to
         the platform array.

FEATURE: add [array random] sub-command to return a random element name and/or
         value from an array.

FEATURE: add [file rmdir] sub-command to delete one or more empty directories.

FEATURE: add the ability to trace interactive command matching and execution.

FEATURE: add experimental support for private procedures (i.e. they may only be
         executed from within the context of the script file that created them).
         this feature is experimental and is subject to change and/or removal.
         also, add NoReplace, NoRename, and NoRemove flags to silently ignore
         attempts to replace, rename, or remove a procedure, respectively.

FEATURE: add [interp set] and [interp unset] sub-commands to get, set, and unset
         variables in child interpreters.

FEATURE: add byte, guid, interpreter, number, object, single, type, uri, value,
         variant, and version string classes to the [string is] sub-command.

FEATURE: add GetAssemblyVersion, GetEagleVersion, and GetTclPatchLevel methods
         to the Utility class.

FEATURE: add [debug complaint] sub-command to return the complaint currently
         stored for the current thread.

FEATURE: add [debug invoke] sub-command to lookup and invoke a command in the
         isolated interpreter with the exact arguments specified.

FEATURE: add [debug callback] sub-command to allow the isolated interpreter to
         be notified via a script when the parent interpreter is interrupted in
         some way.

FEATURE: add optional options variable name argument to the [catch] command,
         compatible with TIP #90 (e.g. for Tcl 8.5).

FEATURE: add optional encoding argument to the [string bytelength] sub-command.

FEATURE: add [object search] sub-command to search for the specified type name
         among the currently imported namespaces and loaded assemblies.

FEATURE: add [string is dict] sub-command to verify that a string conforms to
         the structure of a dictionary.

FEATURE: add -isolated option to the [interp create] sub-command to allow child
         interpreters to be created in an isolated application domain.  modify
         the [interp alias] subsystem to support aliases where the target is in
         a different application domain.

FEATURE: allow the Tcl shell executable used by the test suite to be overridden
         via either the -tclsh command line option or the Tcl_Shell environment
         variable.

FEATURE: add -fixed option to the [file version] sub-command to return the fixed
         file version information (i.e. language and code page independent).

FEATURE: modify the TclBuild and TclWrapper classes to take into account the
         release level when attempting to determine the best available native
         Tcl library.  rename the Tcl_ReleaseType enum to Tcl_ReleaseLevel.

FEATURE: add [tcl recordandeval] sub-command to evaluate a Tcl script using the
         Tcl_RecordAndEvalObj native Tcl API.

FEATURE: add Exceptions property to the ITclApi interface and TclExceptions
         property to the ITclManager interface.  also, add [tcl exceptions]
         sub-command to enable script-level access to this new property.

FEATURE: add LoadSettingsViaScriptFile method to the Utility class to provide
         the ability to load settings from the global variables set by a script
         file, evaluated in an isolated interpreter.

FEATURE: add -nocomplain option to the [tcl update] sub-command to suppress the
         error message caused by the inability to release the module reference
         count (e.g. because the native Tcl library was unloaded).

FEATURE: add IsTclThread method to the ITclManager interface.  this method will
         return non-zero if the current thread was responsible for loading the
         native Tcl library.

FEATURE: add callback, IClientData, and wait parameters to the CreateTclThread
         method of the ITclManager interface.  the first two parameters allow
         the caller to be notified after each event has been processed by the
         TclThread.  the wait parameter allows the caller to block until the
         TclThread is ready to receive events.

FEATURE: add an error line parameter to the TclThread.QueueEvent method.  add an
         error line parameter to the GetResult and SetResult methods of the
         IEvent interface.

FEATURE: add -inverse option to the [lsearch] command to support checking the
         specified text against a list of patterns.

FEATURE: add experimental [array copy] sub-command to copy an array, optionally
         making a deep copy.

FEATURE: add optional boolean argument to the [time] command to enable tracking
         and reporting of the minimum and maximum number of microseconds taken
         for an iteration of the script.

FEATURE: add -noStart option to the [test2] command and NoTestStart interpreter
         flag to allow the "start" indicators for tests to be omitted from the
         output of the [test2] and [test1] commands, respectively.

FEATURE: add -unicode option to the [exec] command to support capturing output
         in the UTF-16 encoding.

FEATURE: support overriding the Eagle "safe" interpreter creation behavior of
         the Eagle Package for Tcl (Garuda) via an environment variable and/or a
         Tcl variable in the package namespace.  when enabled, this forces the
         creation of an Eagle "safe" interpreter even if the Tcl interpreter the
         package is being loaded into is "unsafe".

FEATURE: modify the [host writebox] sub-command to work with non-standard hosts
         by adding the -noboxcolors, -nocolors, and -noposition options.

FEATURE: add ExecuteArguments property to the IDebugger interface, set it from
         within the evaluation engine, and display it with the other debugger
         information in the default host.

FEATURE: add [object lmap] sub-command to collect the [object foreach] results
         into one final result.  also, add -collect option to [object foreach]
         to do the same thing.

FEATURE: add [host flags] sub-command to allow the flags for the interpreter
         host to be queried.

FEATURE: add [array foreach] and [array lmap] sub-commands to allow for very
         efficient iteration over the element names and values in the array.

FEATURE: add [interp immutable] sub-command to allow the interpreter to operate
         in a mode where adding entities and setting new variables is allowed;
         however, existing entities cannot be modified or removed and variables
         cannot be modified or unset.

FEATURE: add interactive #done command to allow for the interactive loop to be
         unconditionally exited, optionally with a specific return code and
         result.

FEATURE: add interactive #tcancel, #tcode, and #tvalue commands to allow the
         TraceInfo output properties to be set during debugger watchpoints.

FEATURE: *BREAKING CHANGE* add MakeVariableFast method to the IVariableManager
         interface.  this method can be used to disable (or reenable) all the
         extra extensibility steps taken in the script variable subsystem (e.g.
         traces, watches, notifications, post-processing, etc) in order to speed
         up access to a specific script variable.

************************* Beta 1.0.4691.37889 RELEASE *************************

BUGFIX: fix the handling for out-of-range tcl_precision values in the expression
        evaluator subsystem.  prior to this fix, an out-of-range tcl_precision
        value could cause the interpreter call stack to become imbalanced if an
        expression was evaluated resulting in a decimal or double value.

BUGFIX: fix error line handling for certain Evaluate* method overloads in the
        Engine and Interpreter classes.

BUGFIX: make sure to deserialize the return code in the ScriptException class.

BUGFIX: resolve the Tcl module file name when a TclApi object is created via the
        NativePackage class, used by the Eagle Package for Tcl (Garuda).

BUGFIX: for test debug-1.4, if the initially saved DebugTextWriter is null, make
        sure that it gets restored properly.

BUGFIX: for tests infoCommands-1.1, infoCommands-1.3, and infoCommands-1.5, add
        support for passing when obsolete commands [getf], [setf], and [unsetf]
        are defined.

BUGFIX: skip adding "unsafe" and non-standard functions to "safe" and standard
        interpreters, respectively.  also, skip adding non-standard operators to
        standard interpreters.

BUGFIX: add the missing COM_TYPE_CACHE and TYPE_CACHE compile-time options to
        the list maintained by the core library.

BUGFIX: cleanup opaque object handles in the global call frame when the global
        namespace is deleted via the [namespace delete ::] command.

BUGFIX: prevent nested package index searches from the [package scan] command
        and/or other mechanisms that do not modify the auto-path variable.

BUGFIX: centralize and fix the semantics for the directory separator character
        trimming performed by the PathOps class to prevent removing the one and
        only character, even if it happens to be a directory separator (e.g.
        when running on Unix).

BUGFIX: make sure that the release preparation tool uses the correct patch level
        for all built binaries, even when the default build configuration is not
        enabled.

BUGFIX: prevent orphaned engine, interactive, test, and variable contexts from
        being leaked, especially via the ScriptThread class and from threads
        created by scripts.

BUGFIX: skip setting the auto_path, tcl_library, and null variables when the
        NoVariables interpreter creation flag is used.

BUGFIX: prevent "dead" native Tcl resources from being transferred to nested
        interpreters created via the [interp create] sub-command.

REFACTOR: *MAJOR* add extensive protections for an interpreter being disposed
          during the execution of any executable entity (e.g. a command) to the
          Engine class, call frame management throughout the core library, the
          interactive loop code, and all supporting methods.

REFACTOR: make the ContextManager class more robust against disposal issues and
          any potential race conditions regarding the static LocalDataStoreSlot
          fields.  add Purge*Contexts methods to the IContextManager interface
          to support cleaning up after orphaned contexts.  revise key comparison
          semantics for the Interpreter*ContextDictionary classes via a custom
          implementation of the IEqualityComparer<IInterpreter> interface.

REFACTOR: modify implementation of the Interpreter.GetHashCode method to allow
          for complete use of the long integer id field.  add IdNoThrow property
          to the IInterpreter interface for use by the InterpreterDictionary
          class.  add GetHashCodeNoThrow method to the IInterpreter interface.

REFACTOR: add Broadcast and Safe flags to the NotifyFlags enumeration.  these
          flags may be used to send notifications to interpreters from other
          threads and "safe" interpreters, respectively.  also, by default,
          interpreters from other threads will no longer receive any global
          notifications.

REFACTOR: add ThreadFlags.NoAbort flag.  also, modify the ScriptThread class to
          support it by forbidding use of the Thread.Abort method when the flag
          has been set.

REFACTOR: revise the delegate type detection performed by the core marshaller
          conversion methods to allow for short-circuiting in the common cases.

REFACTOR: make sure all unsupported command and sub-command options are listed
          and flagged as such, regardless of build configuration.

REFACTOR: consistently use the CommandFlags.NativeCode value only when needed.

REFACTOR: make the Eagle._Cmdlets.Script and Eagle._Tasks.Script constructors
          protected instead of public.

REFACTOR: make the P/Invoke delegates for the GetWindowTextLength, GetClassName,
          and GetWindowText Win32 APIs are marked as Unicode.

REFACTOR: if necessary, reset the current procedure call frame when popping a
          procedure call frame marked as automatic.

REFACTOR: modify the [test1] and [test2] commands to handle exceptions escaping
          from the Engine class, even though such an occurrence is extremely
          rare (e.g. out of memory, hard stack overflow, etc).  this change is
          necessary in order to enable testing of these types of exceptional
          conditions.

REFACTOR: make sure all non-standard commands, functions, and operators are
          flagged as being non-standard.

REFACTOR: enhance the assembly path search performed by the Eagle Package for
          Tcl (Garuda) so that it will look inside the generic LKG directory.
          also, allow the associated tests to be run from the source checkout
          directory even when the EAGLE environment variable is not set.

REFACTOR: revise how the property accessor prefix matching is performed by the
          core marshaller.

REFACTOR: enhance the release archive verification tool to allow it to verify
          the contents of the setup archives created with Inno Setup.

REFACTOR: internally, allow a timeout to be specified for interpreter readiness
          checking.

REFACTOR: make the [debug eval] and [debug subst] commands handle errors like
          the [interp eval] command does.

REFACTOR: all the core functions and operators now implement the IExecute
          interface in addition to the IExecuteArgument interface.  however,
          third-party functions need not follow this pattern.  also, the core
          operators are now marked with any extra operator flags they may
          require using the new OperatorFlagsAttribute class.

REFACTOR: allow policy tracing to be globally enabled via the new PolicyTrace
          property of the GlobalState class.

REFACTOR: modify the FormatOps.WrapOrNull method overloads to handle disposed
          objects with more grace.

REFACTOR: keep track of whether an external execution context is active for the
          interpreter using the new ExternalExecution engine flag.

REFACTOR: add Disposed property to the IDebugger interface.  also, add a new
          exception class named InterpreterDisposedException to indicate an
          object has been disposed that is critical to the operation of the
          interpreter containing it, including the interpreter itself.  this
          new exception class is reserved for use by the core library and it
          should not be used by any third-party code.

REFACTOR: when the PrivateRemove* methods call the WrapperDictionary.Remove
          method, pass the token of the entity to be removed in addition to the
          name.  doing this prevents a potentially disposed entity from being
          accessed by the WrapperDictionary object itself.

REFACTOR: display the ErrorInfo property of the interpreter in the default host
          output.

REFACTOR: centralize logic for comparing file names in the new IsEqualFileName
          and CompareFileNames methods of the PathOps class.

REFACTOR: allow individual operators to be disabled (i.e. where the engine will
          refuse to execute them).  this was already possible for functions.

REFACTOR: add ParentBinder property and experimental SelectMethodIndex method to
          the IScriptBinder interface.  also, promote the ObjectArrayList class
          to public in support of this change.

REFACTOR: specially flag all procedures and variables added for the core script
          library, making it easier to determine which procedures and variables
          are third-party.

REFACTOR: improve output produced by the interactive #version command.

REFACTOR: centralize test configuration and suffix handling to allow the tests
          for the Eagle Package for Tcl (Garuda) to run properly under a wider
          variety of test setups.

REFACTOR: make sure the EagleShell project is selected by default as the startup
          project in Visual Studio.  add solution files containing only the core
          library and shell projects.

REFACTOR: update Fossil tool w/source to version 19ca7c6c54d685ac.

REFACTOR: *BREAKING CHANGE* remove public constructors for the ParseToken and
          ExpressionToken classes.  instances of these classes may be created
          via their static factory methods.

REFACTOR: *BREAKING CHANGE* add a boolean strict parameter to the AddFunction
          method of the IEntityManager interface.

REFACTOR: *BREAKING CHANGE* add a second boolean parameter to the MakeSafe and
          MakeStandard methods of the ISecurityManager interface.

REFACTOR: *BREAKING CHANGE* rename all the *Watch enumeration values and their
          related methods to be *Watchpoint.

REFACTOR: *BREAKING CHANGE* rename/reorder values in the OptionBehaviorFlags
          enumeration.

REFACTOR: *BREAKING CHANGE* remove the wrapper and validate boolean parameters
          and add a LookupFlags parameter to all overloads of the following
          methods on the IEntityManager interface: GetAlias, GetCallback,
          GetCommand, GetDbConnection, GetDbTransaction, GetFunction,
          GetIExecute, GetIdentifier, GetObject, GetPackage, GetPlugin,
          GetPolicy, GetProcedure, GetScope, GetChildInterpreter, GetTrace,
          MatchCommand, MatchIExecute, MatchPlugin, MatchProcedure.  modify the
          IResolve.GetIExecute, IResolveManager.GetIExecuteViaResolvers,
          ITclManager.GetTclInterpreter, and ITclManager.GetTclThread methods in
          the same manner.

FEATURE: in ShellMainCore, support automatically reading and adding command line
         arguments from an optional file named after the process executable with
         the string ".args" appended to it.  the arguments added from the "args"
         file, if any, are processed before any arguments passed on the command
         line itself.

FEATURE: add -channels option to the [host reset] sub-command to allow the
         standard channels for the interpreter to be forcibly reset.

FEATURE: add [info sysvars] sub-command to return the list of all variables that
         were added for use by the script library.

FEATURE: add [lmap] command that is 100% compatible with the one described in
         TIP #405 (e.g. for Tcl 8.6).

FEATURE: add interactive #prflags command to get or set the procedure flags for
         the interpreter.  also, add -library option to the [info commands]
         sub-command in support of this change.

FEATURE: add [package relativefilename] sub-command to allow a fully qualified
         file name to be converted into a package relative file name, based on
         the package index file names known to the interpreter.  also, modify
         the core host to be capable of getting scripts based on their package
         relative file names.

FEATURE: add -noinitialize option to the [interp create] command to allow the
         script library initialization to be skipped for the new interpreter.

FEATURE: add -standard and -nonstandard options to the [info commands],
         [info functions], and [info operators] sub-commands.  allow the
         [info functions] and [info operators] sub-commands to be used from a
         "safe" interpreter.

FEATURE: add -standard option to the [interp create] sub-command.

FEATURE: add [interp expr] and [interp subst] commands to evaluate expressions
         and perform string substitutions using child interpreters.

FEATURE: add [debug shell] command to allow the shell to be invoked, using any
         arbitrary interpreter, including the current interpreter.  this may
         cause the shell to be invoked recursively.

FEATURE: dramatically improve concurrency when using the native Tcl integration
         classes.  also, add -timeout option to the [tcl update] command.

FEATURE: enhance the universal option parser to allow the processing behavior
         for unexpected non-option arguments to be modified.

FEATURE: support overriding the CLR loading behavior of the Eagle Package for
         Tcl (Garuda) to favor using the minimum supported version of the CLR
         rather than the latest supported version via an environment variable
         and/or a Tcl variable in the package namespace.  this feature only
         applies when the Eagle Package for Tcl (Garuda) is compiled for the
         .NET Framework 4.0.  also, support looking for an Eagle assembly file
         name that contains the major version of the CLR (e.g. Eagle_CLRv4.dll).

FEATURE: add support for Visual Studio 2012 and the .NET Framework 4.5.  modify
         the console host to support the newly available Is*Redirected methods
         of the System.Console class.

FEATURE: add [info frameworkextra] command to return supplementary information
         about the version of the .NET Framework being used.

FEATURE: add round2 and round3 math functions to allow for greater control over
         the rounding of numbers decimal and double values.

FEATURE: add -preFile and -postFile command line options to allow a script file
         to be evaluated before and/or after the script library is initialized,
         respectively.

FEATURE: *BREAKING CHANGE* rename the #eval and #subst interactive commands to
         #deval and #dsubst, respectively.  also, add a new #eval interactive
         command to allow for evaluation of one or more arguments using the
         interactive interpreter (i.e. not the isolated debugger interpreter).

************************* Beta 1.0.4629.29317 RELEASE *************************

BUGFIX: *MAJOR* fix incorrect handling of variable change detection for [vwait]
        when operating on array elements.

BUGFIX: fix an access violation in the Eagle Package for Tcl (Garuda) while the
        Tcl library is being finalized via the TclWrapper class.

BUGFIX: when creating an IntPtr instance to represent an address based on an
        integer value, always use the 64-bit overload, not the 32-bit one.

BUGFIX: fix variable event for the interpreter not getting reset when using
        [vwait] on a variable that does not yet exist after using [vwait] on a
        variable that does exist.

BUGFIX: in the TestScriptStream method of the Eagle._Tests.Default class, the
        end-of-line sequence used must start with a carriage-return, even on
        non-Windows systems.  this allows the test basic-1.47 to run and pass
        on non-Windows systems.

BUGFIX: for test exec-1.1, do not attempt to access the ::env(ComSpec) variable
        on systems where it may not exist (e.g. Unix).

BUGFIX: when the Eagle test package is loaded by native Tcl, make sure the test
        constraint overrides are copied over to the Tcltest package.

BUGFIX: fix error message returned by the [tcl load] command when the Tcl_Init
        function fails.

BUGFIX: make sure all the variables used by the test prologue and epilogue are
        unset prior to using any of them.

REFACTOR: update Fossil tool w/source to version 2b56641fb941a72a.

REFACTOR: improve the [checkForTiming] script library helper procedure to allow
          it to check the timing accuracy of queued scripts as well.

REFACTOR: for test socket-1.3, work around SF bug #3545363 (i.e. random hangs
          when using [socket]) by forcing the use of IPv4.

REFACTOR: for now, disable test socket-2.2 when running on Mono; otherwise, the
          test suite may hang.

REFACTOR: enhance the [parray] script library procedure to allow matching modes
          other than glob to be used.  also, modify the [pdict] script library
          procedure to pretty print the passed dictionary.

REFACTOR: the CommandCallback class now formally implements the IGetInterpreter
          interface.

REFACTOR: add AliasFlags property to the IAliasData interface.

REFACTOR: cleanup and modularize the title building/handling logic in the stock
          interpreter hosts.  also, fix a cosmetic issue with spacing.

REFACTOR: *BREAKING CHANGE* add InteractiveMode property to the
          IInteractiveManager interface and modify the #tclsh interactive
          command to set this property based on the current interactive
          evaluation mode.

REFACTOR: *BREAKING CHANGE* add RefreshTitle method to the IInteractiveHost
          interface.  this method may be called to inform the interpreter host
          that its title may need to be updated.

REFACTOR: *BREAKING CHANGE* move all alias-related values from the CommandFlags
          enumeration to the new AliasFlags enumeration.

REFACTOR: *BREAKING CHANGE* the underlying types for the IVariable.ArrayValue,
          ITraceInfo.OldValues, and ITraceInfo.NewValues properties have been
          changed from ObjectDictionary to ElementDictionary.

REFACTOR: *BREAKING CHANGE* modify the GetDateTime2 method of the Value class to
          accept an optional format argument (i.e. it may be null).  also, make
          the remaining public GetDateTime method overload private.

FEATURE: add -aliasreference option to all commands that make use of the
         MarshalOps.FixupByRefArguments and/or MarshalOps.FixupReturnValue
         methods, including [object create], [object invoke], etc.

FEATURE: add -format option to the [clock scan] command (COMPAT: Tcl).

FEATURE: add [uri upload] sub-command to allow uploading of name/value pairs or
         files, synchronously or asynchronously.

FEATURE: add -inline option to the [uri download] command to support downloading
         data and returning it without using a file.  by default, the encoding
         is UTF-8; it may be changed by specifying an encoding name using the
         second argument (i.e. the argument that would have been the file name).

FEATURE: add -evaluateEncoded command line option to allow one or more base64
         encoded strings to be evaluated.  this is useful for strings that may
         contain complex quoting constructs that would otherwise conflict with
         the operating system command line quoting.

FEATURE: *BREAKING CHANGE* add aliasReference parameter to the several AddObject
         method overloads in the IScriptThread interface.

FEATURE: *BREAKING CHANGE* add aliasReference parameter to the several overloads
         of the Utility.FixupReturnValue method.

************************* Beta 1.0.4567.36231 RELEASE *************************

BUGFIX: fix issue with [interp alias] being unable to create linked aliases
        between two interpreters if the names just so happen to be the same.

REFACTOR: modify [calculateBogoCops] script library procedure so that it can
          work in native Tcl as well.

REFACTOR: improve error messages returned by the [object foreach] sub-command
          when the call to the GetEnumerator method on the object throws an
          exception.

REFACTOR: for the [calculateBogoCops] and [evalWithTimeout] script library
          procedures in the test package, make sure the [after] event queue is
          empty.

REFACTOR: add an overload of the Script.Create method that takes one parameter
          (i.e. the script to be evaluated).

REFACTOR: the NullEnumerator class should follow the IDisposable pattern.

REFACTOR: *BREAKING CHANGE* rename [info id] sub-command to [info identifier].
          also, modify the GetIdentifier method of the IEntityManager interface
          to support CallFrame, IExecute, Host, and Resolve identifier kinds.

FEATURE: add experimental ScriptEnumerator class to allow implementation of the
         IEnumerator interface via three scripts (i.e. one per method).

FEATURE: keep count of all entities executed by the engine.  also, modify the
         IFunction and IOperator interfaces to add the IUsageData interface.

FEATURE: add [namespace qualifiers], [namespace tail], and [namespace which]
         sub-commands.  for now, only the global namespace is supported.

FEATURE: add -typeidentity option to the [object invoke] sub-command to return
         the type of any object.  also, add TypeIdentity method to the Utility
         class.

FEATURE: add Yield method to the IEventManager and IEngineHost interfaces.

************************* Beta 1.0.4511.33815 RELEASE *************************

BUGFIX: *MAJOR* fix incorrect parsing of the "?" conditional expression operator
        that can cause some nested conditional expression constructs to produce
        incorrect results.

BUGFIX: a non-static method must be used when the core marshaller attempts to
        automatically choose one of the supported delegates types (for a command
        callback); otherwise, delegate types with exactly one argument may match
        up incorrectly with the ThreadStart delegate type.

BUGFIX: all primary entry points into the engine should combine their flags with
        those of the interpreter in a consistent manner.

BUGFIX: the [info commands] sub-command should show hidden commands for "unsafe"
        interpreters when the -hidden flag is used.

BUGFIX: add missing host type test constraints to tests host-1.*.

BUGFIX: support the NoColor environment variable without the need to load a host
        profile.

BUGFIX: modify test remotingServer-1.3 to prevent it from creating a variable.
        this is necessary because the target interpreter may be different from
        the current one.

BUGFIX: only use the String.Compare method overload that takes a cultureInfo
        parameter when compiled for the .NET Framework 2.0 SP2 or higher.

BUGFIX: the updater project needs to detect when it is being compiled for the
        .NET Framework 4.0.

BUGFIX: fix error message for the #tclshrc interactive command when the file
        cannot be found.

BUGFIX: the test benchmark-1.14 should save and restore the current directory.

BUGFIX: fix intermittent race condition in test object-10.24 that can result in
        the interpreter for the created script thread being disposed prior to
        the Send method being called.

BUGFIX: honor the ForceSoftEof flag and perform end-of-line translations in the
        Engine.ReadScriptStream method when reading a predetermined number of
        characters.

BUGFIX: add missing ObjectGroup attributes to various [expr] functions.

BUGFIX: when handling errors during command line processing, report the original
        argument as it was passed to the shell.  also, prevent any command line
        argument consisting only of "-" or "/" characters from being matched.

BUGFIX: always set the name of threads created by the ScriptThread class, even
        when they will not be started upon creation.

BUGFIX: add special handling for test constraints needed when running the test
        suite in Tcl (e.g. the NETWORK compile-time option).

BUGFIX: *BREAKING CHANGE* for [info script], stop automatically resolving full
        paths for script files that may not exist on the local file system.

REFACTOR: prevent tests expr-3.99, function-2.16, function-3.1, parser-20.*,
          parser-2.1, and parser-5.* from running on Mono due to differences in
          stack size and the string representations of flag Enum values.  also,
          fork test clock-1.1 to account for formatting differences in locale
          specific long date and time between the DateTime framework class and
          the GetDateFormat function of the Win32 API.

REFACTOR: allow boolean strings (e.g. false, true, etc) to be used for index
          arguments to any commands that use the Value.GetIndex method.

REFACTOR: cleanup style issues in the expression handling classes.  also, check
          the expression and parse state objects upon entry into each method.

REFACTOR: add end-of-options support to the [uri create] sub-command.

REFACTOR: add GetBaseException method to the RuntimeOps class and modify the
          Engine class to call it instead of performing the same logic inline.

REFACTOR: revise how the default capacity for StringBuilder objects created by
          the core library is calculated.

REFACTOR: update Fossil tool w/source to version b22cc4eb73c34401.

REFACTOR: add support for NeverGC and NeverWaitForGC environment variables to
          prevent the core library from manually collecting garbage and/or
          waiting for pending finalizers to finish, respectively.  also, add
          another optional boolean argument to the [debug collect] command to
          override this new behavior.

REFACTOR: make test interp-1.12 clear the cached interpreter reference from the
          core host, in case a core host derived class has external references
          that may keep it alive, which would prevent the parent interpreter
          from being disposed via the GC (i.e. which is the whole point of the
          test).

REFACTOR: enhance ability to troubleshoot the batch tools that call other batch
          tools using the CALL command and/or use the PUSHD/POPD commands.

REFACTOR: enhance the release archive verification tool to make it more useful
          to other projects.

REFACTOR: adjust the regular expression pattern for the directory extracted from
          the fossil info command result used by the test prologue.  this seems
          to be necessary when running on Mono due to differences in the regular
          expression implementations.

REFACTOR: in the default implementation of the WriteBox method, make sure to
          validate the configured box character set.

REFACTOR: remove GetCallOptions and GetOptions methods from the implementation
          of the [library] command.

REFACTOR: mark [expr] ParseState objects to be cached as immutable.

REFACTOR: make sure the interpreter field of the ScriptThread class is set to
          null prior to actually disposing of the interpreter it refers to.

REFACTOR: *PERF* adjust the initial capacity calculations for the StringBuilder
          objects used in the Parser.SplitList, Parser.Quote, and Parser.Brace
          methods to improve their performance.

REFACTOR: *BREAKING CHANGE* add boolean resolve parameter and fullPath output
          parameter to the GetStream method of the IEngineHost interface.  when
          the resolve parameter is non-zero, the full path for the stream, if
          applicable, should be placed in the fullPath output parameter by the
          interpreter host.  if the interpreter host cannot determine the full
          path for requested stream, the fullPath output parameter should be set
          to null instead.

REFACTOR: *BREAKING CHANGE* rename the NoPolicies engine flag to NoPolicy.

REFACTOR: *BREAKING CHANGE* revise how the Variant class converts its values to
          the DateTime type.  the default IFormatProvider, DateTimeStyles, and
          DateTimeKind should all be used.  also, move the DefaultDateTimeKind
          variable from the RuntimeOps class to the Value class.

REFACTOR: *BREAKING CHANGE* add IsDisposable property to IWrapper interface.
          this property is never allowed to throw an ObjectDisposedException
          because it is used by the CheckDisposed method of the default wrapper
          to determine if an ObjectDisposedException should be thrown when the
          wrapper itself is accessed after having been disposed.  these changes
          prevent an Interpreter that is being disposed via the finalizer from
          generating superfluous exceptions.

REFACTOR: *BREAKING CHANGE* rename the plugin flags Unsafe, Native, and Safe to
          UnsafeCode, NativeCode, SafeCommands, respectively.  also, rename the
          command flag Native to NativeCode.

REFACTOR: *BREAKING CHANGE* add verbose parameter to the RefreshAutoPathList
          method of the Utility class.

FEATURE: add WaitForStart method to the IScriptThread interface to allow callers
         to wait for the thread event loop to start, optionally with a timeout.

FEATURE: add tqputs and tqlog script library helper procedures to allow test log
         output to be queued until the test log file has been setup by the test
         package.

FEATURE: add removeConstraint script library helper procedure to test package.

FEATURE: add BooleanToInteger expression flag to enable automatic conversion of
         boolean results from the expression engine to their equivalent integer
         values.

FEATURE: support the AsyncCallback delegate type in the core marshaller.  this
         allows scripts to more easily interact with the various asynchronous
         methods provided by the .NET Framework.

FEATURE: add DEBUG_TRACE and DEBUG_WRITE compile-time options to allow most of
         the non-essential runtime diagnostic messages to be disabled.  also,
         revise all usage of the Debug and Trace framework classes by the core
         library.

FEATURE: add ShouldTraceToHost method to the Utility class and the TraceToHost
         interpreter flag to support third-party code sending trace listener
         output to the interpreter host.  also, add ArrayEquals method to the
         Utility class to allow third-party applications and plugins to easily
         compare two byte arrays for equality.

FEATURE: support setting and/or resetting the argc and argv script variables
         when the supplied argument array is null by adding an overload of the
         SetArguments method to the IInterpreter interface.  also, support the
         same semantics during interpreter creation using a new CreateFlags
         value named SetArguments.

FEATURE: add -traceToHost command line option and TraceToHost environment
         variable to enable writing trace listener output to the interpreter
         host.  this option is currently supported by custom shells only.  the
         default shell does not make use of the interpreter flag set by this
         option.

FEATURE: add two optional boolean arguments to the [info body] sub-command to
         enable formatting of the returned body with its corresponding line
         numbers.

FEATURE: add -core option to the [info commands] sub-command to limit the list
         of returned commands to only those provided by the core library.

FEATURE: add -stdin option to the [exec] command to have the value of specified
         variable written to the standard input stream of the created process.

FEATURE: add -nocommands, -nofunctions, -nopolicies, -notraces, -noprovide,
         -noresources, and -noisolated options to the [load] command to allow
         for fine-grained control over the plugin loading process.

FEATURE: add -callback and -callbackflags options to the [uri download]
         sub-command to allow downloads to be completed asynchronously.  also,
         add -trusted option to enable trusting the custom software updates SSL
         certificate for the duration of synchronous downloads.  the -trusted
         option cannot be used with the -callback option and the -callbackflags
         option is ignored if the -callback option itself is not present.

FEATURE: add flags math function to allow the interpreter expression flags to be
         modified while an expression is being evaluated.  this function cannot
         be used by a "safe" interpreter.

FEATURE: support loading managed assemblies via an opaque object handle that
         refers to a readable and seekable Stream object.

FEATURE: *BREAKING CHANGE* make the [invoke] command compatible with TIP #284.

FEATURE: *BREAKING CHANGE* add FunctionFlags attribute and use it to mark all
         included functions as "safe", "unsafe", and/or "standard".  the script
         engine will enforce the "safe" and "unsafe" flags for functions unless
         the NoSafeFunction engine flag is used.  also, add -safe and -unsafe
         options to the [info functions] sub-command.  add two overloads of the
         GetFunctionFlags method to the Utility class.

************************* Beta 1.0.4472.20308 RELEASE *************************

BUGFIX: *MAJOR* fix integral type promotion rules with wide integers in the
        expression parser and type conversion subsystems.

BUGFIX: *MAJOR* fix formatted event names not being unique enough, which could
        result in race-condition like behavior for certain operations involving
        the Event, ScriptThread, and TclThread classes.

BUGFIX: the string representations for the float (System.Single) and double
        (System.Double) versions of the positive and negative infinity values
        should be obtained using the invariant culture.

BUGFIX: the signed-byte type should not be listed in the list of non-integral
        types maintained by the Value class.

BUGFIX: check the return code prior to evaluating the pre-init script, if any.

BUGFIX: in the [configureTcltest] procedure, only try to create the aliases to
        the Tcltest shim commands if they are not already present.

BUGFIX: for test garuda-1.2, make sure the active test configuration and suffix
        are passed into the child test shell so that Garuda can locate the Eagle
        core library in non-default build configurations.

BUGFIX: stop returning the wrong full path name for scripts found by the core
        host on the file system.

BUGFIX: fix issue with [source] command argument handling related to file names
        that look like options.

BUGFIX: prevent ArgumentException from being thrown by [string map] when there
        are duplicate entries in the map.

BUGFIX: avoid throwing ObjectDisposedException from inside the Dispose method of
        the Interpreter class (EventManager).

BUGFIX: avoid throwing ObjectDisposedException from inside the ShellMainCore
        method of the Interpreter class.

BUGFIX: make sure calls to PushActiveInterpreter and PopActiveInterpreter match
        in the Interpreter.Create method, even when exceptions are thrown.

BUGFIX: add missing compile option test constraints to tests basic-1.36,
        debug-1.3, and object-2.8.

BUGFIX: add missing [error] command calls in tests interp-1.10 and interp-1.11.

BUGFIX: when running on Mono, skip the hack for Mono bug #471359 if the wanted
        type is System.Object because everything is assignable to System.Object
        and we always want to lookup opaque object handles.

BUGFIX: for tests basic-1.38, object-14.7, and object-14.8, use the correct
        option name to control the expected return codes (e.g. use -returnCodes
        instead of -returnCode).

BUGFIX: consistently use [info exists] when checking tcl_platform for the test
        constraints.

BUGFIX: add the correct culture and compile-time option test constraints when
        running the test suite in native Tcl.

BUGFIX: for test object-4.10, avoid a superfluous warning from candle.exe when
        using WiX version 3.5 or higher with an Eagle library compiled for WiX
        version 3.0.

BUGFIX: in the release preparation tool, always avoid trying to delete the log
        file that is currently in use.

BUGFIX: for the interactive #cmd (and related) commands, skip the command name
        itself when building the argument string to pass to the child shell.
        also, use the correct (engine) event flags while waiting for the child
        shell to exit.

BUGFIX: make the interactive loop tolerant of null command input.  also, add
        comments to clarify the processing of overridden interactive commands.

BUGFIX: fix compilation issues with the HISTORY compile-time option when the
        core library is being compiled with the THREADING compile-time option.

BUGFIX: the debugger variable in the Interpreter class should be private.  also,
        make sure all context members are reset during disposal whether or not
        the core library was compiled with the THREADING compile-time option.

BUGFIX: synchronize access to the private static data in the NativeOps class
        when compiled for Unix.  also, generally cleanup the code.

BUGFIX: when calling the GetScript, GetStream, and QueueWorkItem methods of the
        IEngineHost interface, check if the interpreter host is in an isolated
        application domain and fallback to using the saved core host instead in
        that case.  this is done to avoid problems when marshalling types that
        are not easily serializable between application domains.

REFACTOR: add support for the UInt16, UInt32, and UInt64 types to the Number
          and Variant classes.

REFACTOR: make tests library-2.1, lsort-9.2, lsort-9.3, lsort-9.4, lsort-9.5,
          and lsort-9.7 more resilient to differences in runtime implementation
          details.

REFACTOR: change how BuildInfo.cs, PatchLevel.cs, and pkgVersion.h files are
          handled by the release preparation tool to make it more flexible.

REFACTOR: move some of the "synthetic" test constraints dealing with native Tcl
          to better homes within the test constraints package.  also, make sure
          the global "no" array is obeyed when adding these test constraints.

REFACTOR: for now, stop using the IInterpreter interface for the IObjectType
          interface.

REFACTOR: add support for the test_statistics global variable to keep track of
          certain statistical information about the current test run.  for now,
          this variable is not used by the test suite; however, it will be used
          in the near future.

REFACTOR: add NoTrusted and NoVerified environment variables to support the
          ability to disable assembly file trust checking and assembly strong
          name signature verification, respectively, during the interpreter
          creation process.

REFACTOR: add IsDefaultAppDomain method to the RuntimeOps and Utility classes.

REFACTOR: cleanup and unify naming of all threads created by and/or used with
          the core library.

REFACTOR: by default, skip waiting for all pending finalizers to complete when
          collecting garbage if called from a non-default application domain
          context.  this appears to be necessary due to a deadlock in the GC
          when using remoting from a thread that contains a user-interface and
          that happens to be running in a non-default application domain.  the
          deadlock be may be limited to circumstances where the user-interface
          thread is synchronously waiting for a call into the core library to
          complete (and is therefore unable to service the GC because it is
          blocked in a synchronous call to GetMessage, etc?).

REFACTOR: add test constraint for checking the current test configuration.

REFACTOR: expose the four argument overload of the Value.GetInteger2 method.

REFACTOR: modify how the test suite handles the -preTest and -postTest command
          line options.  now, elements of the new test_script global variable
          are used instead of using the test_flags elements directly.

REFACTOR: rename the FormatOps.Process method to FormatOps.ProcessName.

REFACTOR: export the machineToPlatform script library procedure from the test
          package to Tcl scripts.

REFACTOR: rename all the local variables and parameters of the CreateFlags type
          from flags to createFlags.

REFACTOR: display the LibraryPath, AutoPathList, and ScriptFlags properties of
          the interpreter in the default host output.

REFACTOR: modify the EagleCopyConfigurations and EagleCleanConfigurations build
          targets to use the OutputPath build property and then rename them to
          CopyConfigurations and CleanConfigurations, respectively.

REFACTOR: modify the CopyLibrary build target to recursively copy the library
          files of the project while maintaining their directory structure.
          also, modify the EagleCleanPackage build target to handle cleaning the
          copied files recursively.

REFACTOR: modify the EventManager.WaitForEventEnqueued method to more closely
          follow the pattern of the EventManager.WaitForEmptyQueue method.

REFACTOR: modify the EventManager.HandleBackgroundError method to check if the
          interpreter has been disposed (i.e. so that none of its callers,
          including the EventManager.ProcessEvents method, need to perform this
          check anymore).

REFACTOR: rename and revise the semantics of the TraceMethodName methods of the
          FormatOps class.

REFACTOR: add commercial plugins to the binary archive exclusion lists.

REFACTOR: more code cleanup for the included BinaryEditor build tool.

REFACTOR: add INTERACTIVE_COMMANDS compile-time option to allow all interactive
          commands to be enabled (or disabled).

REFACTOR: move code for the interactive #check command out of the Interpreter
          class and into the RuntimeOps class.

REFACTOR: move all interactive command implementations out of the Interpreter
          class into the InteractiveOps class.

REFACTOR: move various private static members out of the Interpreter class to
          the EntityOps, RuntimeOps, SetupOps, and SocketOps classes.

REFACTOR: modify release preparation tool to avoid using the reserved character
          escaping hacks that were necessary when constructing the various test
          suite arguments.  also, always rely on the targets file containing the
          build types and their associated build properties instead of embedding
          those build properties in the release preparation tool itself.

REFACTOR: improve compatibility with custom command processors by using __ECHO
          instead of _ECHO in the batch tools.  skip the tests bigDirectory-1.*
          when not using the default Windows Command Processor (i.e. cmd.exe).

REFACTOR: add support for the upcoming WiX version 3.6 and Mono version 2.12.

REFACTOR: revise the semantics for figuring out the default stack size for new
          threads, especially on Unix or when running on Mono.

REFACTOR: replace all usage of the DateTime.Now and DateTime.UtcNow properties
          with the TimeOps.GetNow and TimeOps.GetUtcNow methods, respectively.

REFACTOR: revise how the default value of the Quiet property is computed during
          the creation of interpreters (i.e. it used to be hard-coded).

REFACTOR: stop setting the global ThrowOnDisposed flag from the NativePackage.

REFACTOR: allow the EagleTest package to load successfully in both safe Tcl and
          Eagle interpreters.

REFACTOR: for test object-2.3, use the newly created TestToHexadecimalString
          wrapper method instead of using the ArrayOps class directly.

REFACTOR: for the [test2] command, when test isolation is enabled, treat any
          application domain or interpreter creation errors as a test failure.

REFACTOR: in the default host, revise display formatting for the CultureInfo
          property of the interpreter.

REFACTOR: in the updater, revise display formatting for CultureInfo objects.

REFACTOR: tweak the updater to work around the broken WinForms sizing on Mono.

REFACTOR: remove unused build property from the release preparation tool.

REFACTOR: modify the timing loop in the [time] command.

REFACTOR: add values to the ExecutionPolicy enumeration to support more robust
          X509 certificate checking, XSD schema validation, and several modes.

REFACTOR: per request, update all copyright dates to 2012.

REFACTOR: use the new [tresult] script library procedure to report the overall
          test result messages in the test epilogue and elsewhere.

REFACTOR: support overriding the VERBOSE compile-time option based on the
          EagleVerbose build property.

REFACTOR: add the DefaultQuiet, GetDefaultQuiet, and ShouldBeQuiet values to the
          control output of the default host.

REFACTOR: update WinRAR support in build tools to version 4.10.

REFACTOR: enhance the test path initialization in the EagleTest package in order
          to better support the embedded script library scenario.

REFACTOR: search architecture and platform specific directories for sqlite3.dll
          in the test prologue, if necessary.

REFACTOR: add ScriptFlags property to the IInterpreter interface to control how
          the engine searches for scripts that cannot be found by their path
          information alone.  also, add support for the new property to both the
          InterpreterHelper and InterpreterSettings classes.

REFACTOR: in the Engine.GetScriptFile method, make sure the interpreter passed
          in is valid.  also, use the new ScriptFlags interpreter property to
          control exactly how the search for the script is conducted.

REFACTOR: resize the button text in the updater user-interface.  allow the core
          directory to be retargeted at runtime.  report the number of bytes and
          characters received in the HTTP response.

REFACTOR: modify the [namespace inscope] command to use a tracking call frame.

REFACTOR: add ResolveData property to the ICallFrame interface for use by custom
          resolvers only.  also, add GetCallFrame method to the IResolveManager
          interface.

REFACTOR: move all the OptionDictionary building static methods for the [object]
          command to the RuntimeOps class.

REFACTOR: revise plugin resource handling done by the interpreter and move the
          methods responsible to the RuntimeOps class.

REFACTOR: add NoBinder flag to the ObjectFlags enumeration to have the core
          marshaller skip querying the Binder property of the interpreter.

REFACTOR: update Fossil tool w/source to version a15214e83c3adb3e.

REFACTOR: update MsgGen tool w/source (from the WiX project) to beta version
          3.6.2221.0.  also, update the core library components to accommodate
          all the changes.

REFACTOR: *PERF* slight performance improvement to Parser.ScanElement method.

REFACTOR: *PERF* only track non-[source] script locations if a special flag is
          set in the interpreter.

REFACTOR: *BREAKING CHANGE* add IExecute property to the ICallFrame interface.

REFACTOR: *BREAKING CHANGE* rename the Eagle library and test packages to allow
          for future package hierarchy changes.

REFACTOR: *BREAKING CHANGE* add ICallFrame parameter to the GetIExecute method
          of the IResolve interface.

REFACTOR: *BREAKING CHANGE* change the utc parameter of the Value.GetDateTime*
          methods to DateTimeKind.

REFACTOR: *BREAKING CHANGE* add GetString method to the IPlugin interface.
          technically, this is a breaking change; however, for all plugins that
          derive from the default plugin, implementing this new method is purely
          optional because the base class provides a default implementation that
          simply does nothing.

REFACTOR: *BREAKING CHANGE* add both OptionDictionary and IClientData parameters
          and/or members to the ChangeTypeCallback and ToStringCallback delegate
          types and to the IChangeTypeData interface.  also, modify the various
          InvokeChangeTypeCallback, InvokeToStringCallback, and ToString methods
          of the IScriptBinder interface with similar changes.

REFACTOR: *BREAKING CHANGE* revise semantics of the command line help options.
          also, generally improve the interactive help.

REFACTOR: *BREAKING CHANGE* add an interpreter parameter to the About method of
          the IPlugin interface.

REFACTOR: *BREAKING CHANGE* add name (input) and text (output) parameters to all
          the Engine.ReadScriptStream method overloads to support stream policy
          checking.  also, add a name parameter to all the Engine.EvaluateStream
          and Engine.SubstituteStream method overloads in addition to all the
          EvaluateStream, EvaluateGlobalStream, SubstituteStream, and
          SubstituteGlobalStream method overloads of the IEngineManager
          interface.  finally, unify the now common TextReader reading logic
          into a new method named ReadScriptTextReader.

REFACTOR: *BREAKING CHANGE* modify the internals of the Engine.ReadScriptStream
          method to be more consistent with the Engine.ReadScriptFile method.
          by default, the Engine.ReadScriptStream method will now read beyond a
          soft end-of-file.  the old (legacy) behavior can be restored by using
          the ForceSoftEof engine flag when calling the method.  also, modify
          the Engine.ReadScriptFile method to support policy checking after the
          content of the file has been read.

REFACTOR: *BREAKING CHANGE* modify the behavior of [info script] with an empty
          string argument.  it will now reset the script file name to null.

REFACTOR: *BREAKING CHANGE* modify semantics for the Copy method of the Result
          class.

REFACTOR: *BREAKING CHANGE* for the [sql execute] command, rename the rarely
          used -type option to -commandtype.

FEATURE: add MatchPlugin method to the IEntityManager interface.

FEATURE: add ICacheManager interface, which is implemented by the Interpreter
         class.  the ClearCaches method on this interface allows one or more of
         the internal caches for the interpreter instance to be cleared by the
         caller.  also, allow the internal caches to be disabled via the cache
         flags field of the interpreter.

FEATURE: add -debug option to the [exec] command to help troubleshoot issues
         encountered with executing external commands.

FEATURE: add full support for returning an IDataReader opaque object handle from
         the [sql execute] command when the -execute option is set to Reader and
         the -format option is set to DataReader (which is a newly added value).

FEATURE: add FormatOption method to the Option class.

FEATURE: add a new build target named CopyArchitectureExternals to copy the
         architecture specific external files to the build output directory.

FEATURE: display the static NewHostCallback property of the Interpreter class
         from the WriteEngineInfo method of the default host.

FEATURE: add InteractiveLoopCallback property to the IDebugManager interface to
         allow the debugger to call into a custom interactive loop whenever
         breaking into debug mode is necessary.  also, display this property in
         the default host output when called in the same application domain.

FEATURE: also search for library (and other) scripts using the interpreter to
         attempt and resolve them via the various resource managers of all the
         loaded plugins.

FEATURE: add Text, HashValue, and HashAlgorithm properties to the IPolicyContext
         interface.  also, add StreamDecision property to the ISecurityManager
         interfaces.

FEATURE: add ExtractPolicyContextAndText method to the Utility class to support
         custom stream policy implementations.  also, add GetAssemblyDescription
         method to query the description attribute of the specified assembly.

FEATURE: add Validate method to the Utility class to allow third-party plugins
         access to simple XSD schema validation.  also, add FormatWrapOrNull
         method overloads to the Utility class to help format diagnostic output.

FEATURE: add the release archive verification tool to the source distribution.

FEATURE: modify the interactive #show command to optionally show empty content.

FEATURE: add combineFlags script library helper procedure to combine two flags
         enumeration values into a string suitable for parsing by Enum.Parse.

FEATURE: support embedding an extra user-defined resource in the core library.

FEATURE: add -full option to the [clock format] command, for use with the -iso
         option, to return an ISO8601 DateTime string that includes the number
         of fractional seconds and the UTC indicator.

FEATURE: add NowCallback property to the IEventManager interface to allow the
         concept of the current time to be overridden (i.e. to support virtual
         time).

FEATURE: add DemandStrongName method to the IInterpreter interface to force a
         security demand for the StrongNameIdentityPermission based on the
         strong name key that was used to sign the Eagle core library.

FEATURE: add DemandCertificate method to the IInterpreter interface to force a
         security demand for the PublisherIdentityPermission based on the X509
         certificate that was used to sign the Eagle core library.

FEATURE: add test constraint checking for Visual Studio 2005, 2008, and 2010.

FEATURE: create a targets file that contains the necessary build properties for
         all the standard (both official and unofficial) build types.

FEATURE: add -reconfigure command line option to recreate the interpreter based
         on the specified interpreter settings file.

FEATURE: add DefaultQuiet environment variable to automatically enable quiet
         mode for all interpreters created after it has been set.

FEATURE: add -verifiedonly and -trustedonly options to the [load] command to
         check and enforce the strong name signature and Authenticode signatures
         and certificates on the plugin file prior to loading it, respectively.

FEATURE: add [debug onexit] command to toggle whether or not the script debugger
         is entered upon exiting an engine context.

FEATURE: add [file objectid] command to return the object Id of the specified
         file or directory, if available.

FEATURE: add #tclshrc interactive command to launch the configured text editor
         to edit the configured shell startup file.

FEATURE: add #scflags interactive command to get or set the script flags for the
         interactive interpreter.

FEATURE: *BREAKING CHANGE* add ScriptFlags parameter to the Interpreter.Create
         method overload that previously took 16 parameters (i.e. the one in
         which every possible creation parameter was fully specified).

FEATURE: *BREAKING CHANGE* add an Options method to the IPlugin interface.
         technically, this is a breaking change; however, for all plugins that
         derive from the default plugin, implementing this new method is purely
         optional because the base class provides a default implementation that
         simply does nothing.  also, enhance the [info plugin] sub-command to
         include the options returned by it.

FEATURE: *BREAKING CHANGE* change the [info source] command and allow it to take
         two, three, or four arguments.  when invoked with two arguments, it
         will work just as before.  when invoked with three arguments, it will
         now return only the file name of the specified procedure.  when invoked
         with four arguments, it will either return only the file name (if the
         value of the fourth argument is zero) or all available information
         about the source location of the specified procedure (if the value of
         the fourth argument is non-zero).

************************* Beta 1.0.4375.38149 RELEASE *************************

BUGFIX: in the updater, recognize the literal string "invariant" to represent
        the invariant culture.

REFACTOR: update Fossil tool w/source to version cb52442608ce154d.

************************* Beta 1.0.4375.30934 RELEASE *************************

BUGFIX: the ObjectTraceCallback method should manage reference counts for array
        element names that represent opaque object handles, please see ticket
        #b31de3de14.

BUGFIX: the [array set] command should fire traces so that reference counts for
        opaque object handles can be managed, please see ticket #ba63bb559a.

BUGFIX: the [unset -nocomplain] command should work on the global env array.

BUGFIX: make sure that opaque object handles contained in the global env array
        are handled properly.

BUGFIX: the traces for an individual variable, if any, must execute before those
        that are for the entire interpreter.

BUGFIX: fix compilation issues with the Eagle Package for Tcl (Garuda) on 64-bit
        platforms.

BUGFIX: allow the Eagle Package for Tcl (Garuda) tests to pass on machines where
        the Tk package is not available.

BUGFIX: make sure to use the -success option to [exec] throughout the entire
        test suite, wherever applicable.

BUGFIX: in the SetExceptionErrorCode method, the syncRoot field must be used
        instead of the SyncRoot property just in case the interpreter has been
        disposed.  also, skip setting the error code if the interpreter has been
        disposed or deleted.

BUGFIX: release ITypeInfo COM object references via Marshal.ReleaseComObject.

BUGFIX: always check the return value of the various Engine.CreateThread method
        overloads to make sure the thread was created successfully.

BUGFIX: prevent infinite recursion in the MarshalOps.IsSimpleListType method if
        a type contains generic arguments that refer to itself.  also, rename
        the method to IsSimpleGenericType.

BUGFIX: in the core marshaller, implicit conversions of a generic object to a
        string should be restricted to those deriving from the List<T> type.

BUGFIX: stop assuming that package version numbers can be parsed correctly as a
        number in double format.

BUGFIX: when creating an interpreter, never automatically fallback to using the
        current culture; instead, use the invariant culture.

BUGFIX: adjust the wait slop microseconds value to half the maximum wait time;
        otherwise, the potential exists for the actual wait time to exceed the
        requested wait time by an excessive amount.  also, adjust the wait slop
        divisor to match up with the minimum wait time.

BUGFIX: correct argument lists for String.Format used by various DebugTrace
        method calls in the Engine and Interpreter classes.  without this fix,
        an unhandled exception may be thrown if another exception is raised and
        caught during certain method calls into the Interpreter and/or Engine
        classes.

BUGFIX: stop the settings.xml test file being excluded from the binary release
        archives.

BUGFIX: harden percent calculations in the runAllTests script library procedure
        against divide by zero errors when there are no non-skipped test files.

BUGFIX: when building package paths, skip adding the package version unless the
        package name itself is also being used (i.e. it is not null or empty).

BUGFIX: resolve various style and correctness issues as revealed by FxCop.

BUGFIX: add missing compile option test constraints for Windows.  also, correct
        regular expression patterns for various test results where the escaped
        period should have been used (i.e. to match a literal period).

BUGFIX: in the InterruptCancelThread method, make sure to always clear the
        cancelThread field of the interpreter if the thread is no longer alive.
        also, in the CancelThreadStart method, do not blindly catch exceptions,
        like ThreadInterruptedException, while sleeping.

BUGFIX: *BREAKING CHANGE* when running in an isolated application domain, use
        the directory containing the Eagle core library for the binary path to
        be used by scripts (e.g. when locating packages, [info binary], etc).

BUGFIX: *BREAKING CHANGE* raise an error when an attempt is made to read from an
        undefined write-only variable.

REFACTOR: adjust the test prologue to allow the checking for test suite files,
          fields, and properties to be skipped.

REFACTOR: add a Condition attribute to most calls of the Delete task used by the
          custom build targets.  this is not strictly required, even when there
          are no files; however, it makes the intent clearer.

REFACTOR: add several overloads of the IErrorManager.CopyErrorInformation method
          to support different result handling semantics.

REFACTOR: revise build infrastructure to more easily support its use by external
          projects.  these changes are primarily focused on the location and
          name of the strong name key files used for signing output assemblies.

REFACTOR: query the ITypeInfo of a COM object using both the IProvideClassInfo
          and IDispatch interfaces and allow either one to match the interface
          type name being sought.

REFACTOR: when running on Mono, do not use a default stack size of zero for new
          threads as it seems to cause problems for some older versions of Mono,
          preventing them from creating the thread.

REFACTOR: the [info culture] command and the eagle_platform(culture) variable
          will no longer use an empty string to represent the invariant culture.

REFACTOR: add detailed comments in the all.eagle file used to run the test suite
          for the core library.

REFACTOR: modify the compileCSharp script library procedure to add the DEBUG and
          TRACE defines to the compilation options if the core library was also
          compiled with them.

REFACTOR: fix error checking when attempting to create directories in the batch
          tools.

REFACTOR: add Fossil versionable setting files for the file patterns to ignore
          when detecting extra files and/or files that contain carriage-returns.

REFACTOR: exclude more files generated automatically by Visual Studio 2010 and
          Komodo 6.x from the source release archives.

REFACTOR: improve source location tracking for all tokens created by the script
          and expression parsers.  change the active script file name stack to
          an active script location stack.  for Argument objects, keep track of
          their original source location.  the IScript interface now inherits
          from the IScriptLocation interface.  add a ViaSource property to the
          IScriptLocation interface to keep track of whether the source location
          was pushed because of the [source] command or some similar mechanism.

REFACTOR: report counts of test files that failed and/or leaked when reporting
          the percent of test files completed.

REFACTOR: *BREAKING CHANGE* modify the compileCSharp script library procedure to
          accept arguments to enable in-memory assembly generation, debug symbol
          generation, and strict compiler error checking (i.e. treat warnings as
          errors).

REFACTOR: *BREAKING CHANGE* revise how the opaque database object handles
          returned by the [sql] command are constructed.

REFACTOR: *BREAKING CHANGE* add an IHost parameter to the ScriptThread.Create
          method.

REFACTOR: *BREAKING CHANGE* create a formal interface named IScriptThread for
          use with the ScriptThread class.  this is considered a breaking change
          because using the ScriptThread class type itself for field, property,
          and parameter declarations is now formally deprecated.

FEATURE: add -vendorPath command line option to set the vendor path environment
         variable to the specified value.

FEATURE: add SetVariableLink method to the IVariableManager interface.  this new
         method is used to create variables in the interpreter linked to a field
         or a non-indexed property of an instance or class.  conceptually, this
         feature is very similar to the concept of linked variables as they are
         implemented by native Tcl.

FEATURE: for the [sql execute] command, add a -valueflags option and support
         optional per-parameter value flags.  also, skip trying to process empty
         strings for the paramType and paramSize fields of the command parameter
         arguments.

FEATURE: add the getReturnType and getDefaultValue script library procedures to
         return the effective return type for an object member and the default
         value for a given type, respectively.

FEATURE: add [debug procedureflags] command to return or set the flags for the
         specified procedure.

FEATURE: add [info windows] command to return the list of top-level windows on
         the current desktop, optionally matching the specified pattern.

FEATURE: add Visual Studio 2008/2010 settings files to the source repository
         suitable for working with the official NuGet.org and SymbolSource.org
         packages as well as the .NET Framework source code itself.

FEATURE: add -type option to the [object members] command to override the type
         used when looking up members.

FEATURE: add NewHostCallback static property to the Interpreter class to allow
         external applications and plugins to provide custom interpreter host
         implementations if one is not explicitly specified by the caller during
         the interpreter creation process.

FEATURE: add -clientdata and -data options to the [load] and [unload] commands
         to control the IClientData instance passed to the plugin constructor
         and/or the Initialize method.  also, support loading and unloading
         plugins into/from child interpreters.

FEATURE: *BREAKING CHANGE* change the [info source] command and allow it to take
         two or three arguments.  when invoked with two arguments, it will now
         return the current source location (i.e. previously, this would have
         been an error).

FEATURE: *BREAKING CHANGE* add About method to the IPlugin interface.  also, add
         FormatPluginAbout method to the Utility class.  technically, this is a
         breaking change; however, for all plugins that derive from the default
         plugin, implementing this new method is purely optional because the
         base class provides a default implementation that simply does nothing.

************************* Beta 1.0.4312.34328 RELEASE *************************

BUGFIX: prevent subtle race condition in the ScriptThread.Send method when the
        event wait handle used to synchronize the primary thread with the script
        thread could be closed prior to being signaled.

BUGFIX: fix elapsed microsecond calculations when either the NATIVE or WINDOWS
        compile-time options are disabled.

BUGFIX: make sure that the Excel integration tests do not require the NATIVE
        compile-time option to pass.

BUGFIX: the [after] command should not block for more than a minimal amount of
        time per iteration; otherwise, it is unsuitable for certain use cases
        with the ScriptThread class.

BUGFIX: the [exportAndImportPackageCommands] script library procedure should be
        able to handle Tcl namespaces other than the current one.

BUGFIX: fix an exception in the [do] command when used with an empty while/until
        clause.

BUGFIX: add strong-name verification skipping registry file for use on 64-bit
        Windows.  ideally, this would not be necessary; however, it appears that
        MSBuild is always a 32-bit process (i.e. EXE flagged 32BITREQUIRED).

BUGFIX: the setup creation tool should always attempt to create the releases
        directory if it does not already exist.

BUGFIX: in the event manager subsystem, check for the interpreter being deleted
        as well as disposed prior to attempting to use it for event processing.

BUGFIX: avoid deadlocks related to global notifications (e.g. when disposing of
        any object that also contains an interpreter to dispose, such as a
        script thread).

BUGFIX: close all events created by the event manager when it is being disposed.

BUGFIX: when disposing an interpreter, make sure that all pending calls to the
        Wait and WaitVariable methods are complete prior to disposing of the
        event manager and/or the shared variable event.  this avoids a race
        condition where event(s) being used are disposed prematurely.

BUGFIX: make sure calls to the DebugOps.Complain method use the overload that
        includes an interpreter parameter if one is readily available.

BUGFIX: if an exception is thrown while creating an interpreter, make sure that
        the partially created interpreter gets disposed.  also, suppress the
        exception unless the ThrowOnError flag is set.

BUGFIX: when building the auto-path list for the interpreter, avoid attempting
        to add duplicate directories (i.e. merge the global auto-path list with
        the one from the interpreter).

BUGFIX: when running the test suite in native Tcl, prevent the format.eagle test
        file from cleaning up (via ::tcltest::cleanupTests in format.test),
        except from the test epilogue.

BUGFIX: the [file normalize] command should remove trailing slashes.

BUGFIX: fix handling of the -logFile test suite option in spawned test shells.

BUGFIX: when starting the interactive loop from ShellMainCore, make sure to use
        the original command line arguments (as provided by the caller).

BUGFIX: add missing detection of leaked TclThread objects in the test suite.

BUGFIX: make sure the assembly related plugin flags are set for the static core
        plugins.

BUGFIX: the test object-10.4 needs to be constrained by the availability of
        symbols for the core library.

BUGFIX: avoid repeated calls to the AttributeOps.GetAssemblyTitle method from
        the GlobalState class.

REFACTOR: make sure that all exception diagnostic messages include the current
          thread Id.

REFACTOR: update Fossil tool w/source to version 20111021125253.

REFACTOR: modify the [cleanupThread] script library procedure to be more verbose
          and robust when dealing with stale threads.

REFACTOR: if necessary, retry the precision timing test constraint check to get
          a more accurate reading.

REFACTOR: improve console integration in the updater by attempting to attach to
          an existing console instead of always opening a new one (i.e. when run
          via the command line).

REFACTOR: when running tests via the [runAllTests] script library procedure,
          track and report all file names where any resources are leaked.

REFACTOR: add basic diagnostic messages to the Create, PrivateInitialize, and
          PrivateInitializeShell methods of the Interpreter class.

REFACTOR: when waiting on a variable, detect STA threads and act accordingly
          (i.e. pump messages if necessary).

REFACTOR: while waiting for a variable, make sure to wake-up immediately upon
          emptying the event queue [managed by the event manager] or an event
          being enqueued to the event queue [managed by the event manager].

REFACTOR: revise and enhance the handling of assembly related plugin flags (e.g.
          for strong-name and Authenticode signature checking), keeping track of
          whether a signature and/or certificate is present and whether it is
          valid and/or trusted using different flags.

REFACTOR: modify the #test and #ptest interactive commands so that they handle
          the full set of meta-characters supported by [string match].

REFACTOR: various refinements to unit tests and infrastructure, including test
          command line support for populating the "no" array.

REFACTOR: attempt to return a meaningful result for [info nameofexecutable] on
          Mono even when running in an isolated application domain.

REFACTOR: add [testClrExec] script library procedure to help execute a managed
          executable, taking into account whether it needs to be executed via
          Mono.

REFACTOR: if the TYPE_CACHE compile-time option is enabled, cache all successful
          Type.GetType and Assembly.GetType lookups based on the actual name
          used to resolve the type, fully qualified or otherwise.

REFACTOR: *BREAKING CHANGE* reform usage patterns for string constants included
          in the Eagle Package for Tcl (Garuda), including the ones exposed in
          the public header file.

REFACTOR: *BREAKING CHANGE* major internal changes to the event manager.  all
          events are now sorted by priority in addition to date and time.  the
          normal events and idle events are now stored in two different queues
          internally for much faster access.  track the maximum event count
          (both idle and non-idle) that an event manager has seen.  add an
          EventPriority parameter to all the QueueScript and QueueEvent method
          overloads on the IEventManager interface.  also, add EventPriority
          parameter to the DequeueAnyReadyEvent, DoOneEvent, ProcessEvents, and
          ServiceEvents methods on the IEventManager interface.  make sure that
          the "current" time advances despite the fact that the system clock has
          a resolution typically limited to 10 milliseconds.  also, add the the
          following properties to the IEventManager interface: IdleEventCount,
          TotalEventCount, MaximumEventCount, and MaximumIdleEventCount.

REFACTOR: *BREAKING CHANGE* avoid using String.Format to construct the error
          messages when a variable is undefined or not present because these
          conditions occur a lot on the hot path when waiting for a variable to
          be created or [re-]defined.

REFACTOR: *BREAKING CHANGE* add args parameter to the GetStartupCreateFlags and
          ProcessStartupOptions methods of the Interpreter class.

REFACTOR: *BREAKING CHANGE* make sure that no XML serialization functionality is
          referenced or used if either the XML or SERIALIZATION compile-time
          options are disabled.

REFACTOR: *BREAKING CHANGE* prevent the ApplicationObject, PolicyObject,
          ResolverObject, and UserObject of the InterpreterSettings class from
          being serialized.  also, add unit tests for the InterpreterSettings
          class.

REFACTOR: *BREAKING CHANGE* Modify the ShellArgumentCallback delegate to accept
          a list of strings instead of an array of strings.  Also, modify the
          PopFirstArgument and PopLastArgument methods of the Utility class in
          the same fashion.

REFACTOR: *BREAKING CHANGE* Modify WaitVariable method of the IVariableManager
          interface to accept an event wait handle and a boolean indicating
          whether or not messages should be pumped during the wait operation.

REFACTOR: *BREAKING CHANGE* Modify the DoOneEvent and ServiceEvents methods of
          the IEventManager interface to accept a boolean indicating whether or
          not messages should be pumped during the wait operation.

FEATURE: add -trace option to the [test2] command to emit diagnostic messages
         before and after the startup, body, and cleanup blocks of the test.

FEATURE: add [haveEagle] script library procedure to the Eagle Package for Tcl
         (Garuda).  it will return non-zero if the Eagle core library has been
         loaded and is available for use.  optionally, it will return the full
         version of the Eagle core library using a variable nominated by the
         caller.

FEATURE: add GetInteractiveCommandNames and GetInteractiveCommandHelp methods to
         the Utility class to support external applications and plugins looking
         up interactive commands.

FEATURE: add [after counts] and [after dump] commands to return diagnostic
         information about the event queues for the interpreter.

FEATURE: add AddObject method to the ScriptThread class to add objects to the
         contained interpreter.  add WaitForEvent method to the ScriptThread
         class to wait for an event to be enqueued.  add WakeUp method to the
         ScriptThread class to force the event queue to be processed.  add Name
         property to the ScriptThread class to help identify the thread in the
         debugger.

FEATURE: add static IsPendingWait method to the Interpreter class.  this method
         will return non-zero if the interpreter has any outstanding calls to
         the Wait or WaitVariable methods pending.

FEATURE: add [debug pluginflags] command to get or set the current plugin flags
         for the interpreter.

FEATURE: add -allownull option to [sql execute] to control whether or not NULL
         column values are returned.  if so, they are converted to an empty
         string.  by default, this option is disabled (i.e. legacy behavior).
         also, add and revise unit tests for the [sql] command.

FEATURE: new -arguments command line option to read command line arguments from
         the specified file (the string "-" or "stdin" may be used to specify
         that arguments should be read from the standard input stream).

FEATURE: add -current option to [exit] to use the exit code currently stored in
         the ExitCode property of the interpreter.

************************* Beta 1.0.4291.26291 RELEASE *************************

BUGFIX: *MAJOR* fix issue with the [if] command that can cause a script ending
        with it, including a procedure body, to return the value of the command
        immediately preceeding it, if no scripts are evaluated for any of the
        then/else clauses associated with the [if] command invocation.

BUGFIX: when the event manager encounters an error via a dispatched event,
        really ignore it when the stopOnError parameter is false.

BUGFIX: make sure [info binary] returns the correct path even when running in an
        isolated application domain.

BUGFIX: the value for EngineAttribute.RuntimeOptions should not be an [octal]
        value of 010000 (typo).

BUGFIX: revise core marshaller handling for Enum parameters.  previously, it was
        impossible to call any methods having nullable parameters of enumerated
        types, ByRef or otherwise.

BUGFIX: make the build tool use the base project configuration (i.e. without the
        optional All/Dll suffix) when the COREONLY environment variable is
        defined.

BUGFIX: fix the [tsource] script library procedure so that it saves and restores
        the [tcltest::test] procedure using the correct (i.e. global) namespace.

BUGFIX: fix tests infoPlugin-1.1.* and object-6.1, allowing them to pass even if
        strong-name signing has been disabled for the built assemblies.

BUGFIX: fix tests library-3.1 and library-3.2 on 64-bit operating systems when
        32-bit Tcl DLLs are detected (i.e. avoid trying to load them).

BUGFIX: when processing command line arguments, make sure to refresh the cached
        host after processing any argument that can potentially execute external
        code.

BUGFIX: the DoOneEvent method of the Interpreter class needs to use a try/catch
        block in case the interpreter has been disposed.

BUGFIX: the IsVariableNameDirty method of the Interpreter class needs to check
        if the interpreter has already been disposed while holding the lock.

BUGFIX: the Sleep method overload called by the WaitVariable method in the
        Interpreter class needs to check if the interpreter has been disposed
        prior to grabbing the current host while holding the interpreter lock.

BUGFIX: the engine should only reset the script cancellation flags once upon
        entry at level zero, not once for each command executed at level zero.

BUGFIX: use the syncRoot field instead of the SyncRoot property in the Ready
        method of the Interpreter class (i.e. bypass the disposal checking for
        the interpreter because that is one of the checks that the Ready method
        itself performs).  also, since the Engine.IsCanceled and Engine.IsHalted
        methods are called directly by the Interpreter.Ready method, modify them
        to use the field as well.

BUGFIX: in the event manager, do not attempt to handle any background errors if
        the interpreter has been disposed.

BUGFIX: in WaitVariable, skip clearing the variable wait flags if the parent
        interpreter has been disposed.

BUGFIX: avoid deadlocks when an interpreter calls the ClearEvents or QueueScript
        methods of its own event manager.

BUGFIX: during interpreter disposal, do not attempt to dispose objects with the
        NoDispose flag set (i.e. objects not owned by the interpreter).

BUGFIX: prevent the methods related to introspecting the current stack trace
        from being inlined by the CLR (e.g. DebugOps.GetMethod).

BUGFIX: refresh the cached interactive host in the interactive loop after each
        command is processed.

BUGFIX: do not attempt to update the last interactive input if the interpreter
        is invalid.

BUGFIX: correct shutdown logic for the GC test thread by the interactive loop.
        it will now be shutdown only by the interactive loop that started it.

BUGFIX: in the execShell script library procedure, wrap the name of the Eagle
        shell executable in quotes when running on Mono (i.e. since it is then
        the first formal argument and not the file name itself, which is simply
        "mono").

BUGFIX: for the result of test error-1.5, truncate the name of the file being
        evaluated using ellipsis.

BUGFIX: when adding the file name of a ParseToken to the result of the ToList
        method, convert null to empty string.

BUGFIX: in the PowerShell cmdlet, make sure the interpreter gets disposed if it
        is still valid upon entry into the Dispose method.

BUGFIX: in Garuda, make the GarudaObjCmd function static.  also, when running on
        the .NET Framework 4.0, release the ICLRMetaHost and ICLRRuntimeInfo
        interface pointers only if the ICLRRuntimeHost interface pointer is
        being released as well.

BUGFIX: fixup time measurements to microseconds for non-native or non-Windows
        builds of the core library.

BUGFIX: fix test tclLoad-1.12.4 to use the native package Tcl interpreter for
        the nested call to [tcl eval].

BUGFIX: in the Garuda test suite, check for the testBinaryPath variable before
        trying to read it.

BUGFIX: fix nesting of [regsub -eval] invocations.  remove the RegsubClientData
        property from the IEngineContext interface and the Interpreter class.
        modify the active interpreter stack to allow any IClientData (i.e. in
        this case, a RegsubClientData) to accompany each interpreter in the
        stack.  also, modify the [regsub] command implementation itself to use
        this new stack-based RegsubClientData passing technique.

BUGFIX: fix the [getDictionaryValue] script library procedure to avoid returning
        the wrong value when a previous value could match the name being sought.

BUGFIX: *BREAKING CHANGE* the engine should not assume that all threads require
        the same maximum stack size, especially since the default stack size is
        normally 16MB.

REFACTOR: revise call frame cleanup code to be generally more robust.

REFACTOR: add an AssemblyRelease attribute to allow each public release to carry
          additional information about its nature.

REFACTOR: the ShellMainCore method will now honor the quiet mode for the current
          interpreter by not directly emitting any error messages after it has
          been enabled.

REFACTOR: revise handling of command resolution errors in the background error
          handler (i.e. report any command resolution error).  also, allow the
          default background error handling to be disabled.

REFACTOR: remove the CommandFlags.Native value from the [after] command as this
          command does not actually call into any native code.  also, add the
          CommandFlags.Native value to the [sql] and [test2] commands as they
          may call into native code.

REFACTOR: add Virtual value to the VariableFlags enumeration.  variables with
          this flag are assumed to be handled by custom trace callbacks and
          cannot be handled directly by the core marshaller or used with most
          of the [array] sub-commands.

REFACTOR: for the test suite, issue a warning if the Eagle core library is not
          strong-name signed OR is strong-name signed with an unrecognized key.

REFACTOR: move code for adding and removing scopes from the Scope command class
          into the Interpreter class, preserving the existing locking semantics.

REFACTOR: allow the test configuration to be unset via a -preTest option to the
          test suite.

REFACTOR: make sure all the example commands are tagged with an ObjectGroup
          attribute.

REFACTOR: add expression parser tests related to parsing function names that
          start with NaN, Inf[inity], or a number.

REFACTOR: double the default thread join timeout when running on Mono because
          its threading is much slower.

REFACTOR: add [getGarudaDll] script library procedure to return the full path
          and file name for the Garuda DLL.

REFACTOR: add test garuda-1.2 to test Eagle to Garuda integration.  also, rename
          the garuda-1.0 test to garuda-1.1.

REFACTOR: rename the scope-* tests so that their ordering is consistent with
          their file names.

REFACTOR: rename the try-* tests to avoid duplicate names.

REFACTOR: check for and display any duplicate test names that are found while
          running the test suite (or individual test files).  also, keep more
          careful track of skipped tests (i.e. by name).

REFACTOR: when running the interactive #test and #ptest commands with a specific
          pattern, make sure the sort ordering of the files is consistent with
          running the entire test suite.

REFACTOR: fine-tune the expected times for the stack overflow benchmark tests.

REFACTOR: for now, disable testing Tk 8.4/8.5 integration when running in Eagle.

REFACTOR: attempt to support running the Excel integration tests using expired
          trial versions of the product.  also, enhance cleanup and diagnostics
          for the tests excel-1.* and excel-2.*.

REFACTOR: modify the test suite to output periodic reports on the percentage of
          test files completed.

REFACTOR: add [formatDecimal] script library procedure to the test package and
          remove inline formatting hacks from the benchmark test file and the
          test epilogue.

REFACTOR: set the global errorCode variable to the type of the exception thrown.
          currently, this is done at key points in the engine and for all core
          commands, functions, and operators that catch their own exceptions.
          the key points in the engine include any place where an exception is
          thrown from the Execute method of the IExecute or IExecuteArgument
          interfaces and subsequently caught by the engine itself.

REFACTOR: in the test suite, replace uses of the [lappendArgs] script library
          procedure with [list].

REFACTOR: in the test exec-1.1, use env(ComSpec).

REFACTOR: avoid using the C# keyword __arglist when running on Mono as it does
          not appear to work.

REFACTOR: skip test basic-1.28 when running on Mono (Mono bug #710567).

REFACTOR: for the tests basic-1.32 and basic-1.33, allow NullReferenceException
          and/or NotSupportedException in the results of the method calls due to
          implementation differences between the default binders on the .NET
          Framework and Mono.

REFACTOR: skip tests clock-1.17, clock-1.18, and parser-3.2 when running on Mono
          (Mono bugs #710522, #710512, #710537).

REFACTOR: when adding directories to the auto_path, make them Unix style (i.e.
          with forward slashes).

REFACTOR: in the updater, when using the WinVerifyTrust API, only prompt the
          user for files downloaded from the Internet.

REFACTOR: show variable names when displaying the information for a call frame.

REFACTOR: skip breaking into the debugger (or writing an error message) when
          termination or resource disposal failures are detected while exiting
          unless the BREAK_ON_EXITING compile-time option is enabled.

REFACTOR: add a simpler overload of the Create method to the Script class.

REFACTOR: add diagnostic messages to the ScriptEventCallback method of the
          EventManager class.  these messages are enabled only when the event
          being processed has the debug flag set.

REFACTOR: add diagnostic messages to the WaitVariable method of the Interpreter
          class.  also, add a new variable flag, WaitTrace, to enable these
          diagnostic messages.

REFACTOR: allow ThreadOps.CreateEvent to create auto-reset events if requested.
          also, move the default join timeout constant to the ThreadOps class.

REFACTOR: swap test numbers for tests tclLoad-1.12.2 and tclLoad-1.12.3.

REFACTOR: update the Tcl headers and library included with the Garuda project to
          Tcl 8.6 beta 2.

REFACTOR: remove workaround for the MSBuild Exec task error detection from the
          winForms-5.2 test and add it to the release preparation tool instead.

REFACTOR: update Fossil tool w/source to version 9bfa186be09f3f95.

REFACTOR: *BREAKING CHANGE* rename the NewTraceListener method of the Utility
          class to NewDefaultTraceListener.

REFACTOR: *BREAKING CHANGE* in FixupReturnValue, do not use an existing opaque
          object handle if the opaque object handle name has been specified by
          the caller unless the AllowExisting object flag has been specified.

REFACTOR: *BREAKING CHANGE* rename TestGenericList to GenericList.

REFACTOR: *BREAKING CHANGE* move the [tsource] and [testShim] script library
          procedures to the EagleTest package.

REFACTOR: *BREAKING CHANGE* add noCancel parameter to the WaitVariable method.
          this allows for the wait operation to continue even if a running
          script is canceled or unwound.  also, add a NoCancel engine flag and
          change the Ready method of the Interpreter class to support bypassing
          script cancellation checking during the interpreter readiness checks.

REFACTOR: *BREAKING CHANGE* add maxStackSize and isBackground paremeters to all
          the CreateThread method overloads of the Engine and the corresponding
          methods of the IEngineHost interface.  also, add the ThreadStackSize
          property to the IInterpreter interface.

FEATURE: add -packagePath option to [test2] to control the the sub-directories
         probed for private assemblies in the isolated application domains.

FEATURE: add support for per-vendor customizations during interpreter creation
         via a new VendorPath environment variable and a vendor.eagle script.

FEATURE: add DoesScopeExist method to the IEntityManager interface.

FEATURE: add -datetimebehavior and -datetimeformat options to the [sql execute]
         command to control how DateTime values are converted to strings prior
         to being added to the results.

FEATURE: add -procedure and -shared options to the [scope create] and
         [scope open] commands.  the -procedure option can be used create or
         open a scope based on the innermost active procedure body (e.g. a named
         procedure or lambda expression).  if there is no active procedure body,
         an error is raised.  for lambda expressions, all scopes created with
         the -procedure option will be shared by all lambda expressions.  scopes
         created and/or opened without the -shared option will be per-thread and
         per-interpreter; otherwise, they will be per-interpreter only (i.e.
         shared by all threads).

FEATURE: add -preTest and -postTest command line options to the test suite.
         these options can be used to evaluate a script before and/or after any
         tests are run, respectively.

FEATURE: add -time option to the [test2] command.  this option can be used to
         enable the output of timing information for the test setup, body, and
         cleanup scripts.

FEATURE: add [info hwnd] sub-command to return information about the specified
         window.

FEATURE: add [garuda dumpstate] sub-command to allow full introspection of the
         internal state of the Garuda package.

FEATURE: add [garuda clrexecute] sub-command to execute an arbitrary managed
         method via the ICLRRuntimeHost::ExecuteInDefaultAppDomain CLR API.

FEATURE: add DebugTextWriter and TraceTextWriter properties to the IDebugManager
         interface.  the DebugTextWriter property is used by the core library
         when reporting serious runtime errors (i.e. via DebugOps.Complain).
         the TraceTextWriter is reserved for future use by the core library.

FEATURE: add an EmptyEvent property and a WaitForEmptyQueue method to the
         IEventManager interface.  the WaitForEmptyQueue method allows an
         application or plugin to wait until there are no events in the queue
         (i.e. all previously queued events have been canceled, discarded, or
         dequeued).

FEATURE: add various overloads of the EvaluateGlobal* and SubstituteGlobal*
         methods to the IEngineManager interface.

FEATURE: add public ScriptThread class to allow applications and plugins to
         create and manipulate dedicated scripting threads.

FEATURE: include a simple PowerShell script that can install the cmdlet.

FEATURE: add #rlimit interactive command to display or set the recursion limit
         for the interactive interpreter.

FEATURE: add NoLoop environment variable to support the ability to skip entering
         the interactive loop.

FEATURE: expose FormatBreakpoint, FormatErrorVariableName, GetStringFromObject,
         HasFlags(BreakpointType), SetVariableDirty, and SetVariableUndefined
         methods via the Utility class for use when implementing custom variable
         trace callbacks.

FEATURE: *BREAKING CHANGE* by default, when using the -commandline option to
         [exec], only surround arguments with quotes if they contain at least
         one reserved command line character (e.g. a space).  also, add a new
         -quoteall option to force the legacy behavior of surrounding every
         argument with quotes.

FEATURE: *BREAKING CHANGE* allow applications and plugins to process custom
         shell arguments to ShellMainCore via a supplied callback.  also, expose
         the MatchSwitch, PopFirstArgument, and PopLastArgument methods via the
         Utility class for use when processing shell arguments.

************************* Beta 1.0.4221.27588 RELEASE *************************

BUGFIX: *PERF* for the CacheDictionary class, prevent the TrimExcess method from
        doing its expensive work more than once per minute.  also, remove some
        unnecessary uses of the ContainsKey method.

BUGFIX: fix updater bug in handling of non-existent directories in the target
        file names.

BUGFIX: make sure the release preparation tool sets the PACKAGE_PATCHLEVEL
        environment variable prior to building the Garuda binary packages.

BUGFIX: make sure the release preparation tool modifies the default build type
        used by the updater project (i.e. in the BuildInfo.cs file).

REFACTOR: update Fossil tool w/source to version ba15af450d33b2fd.

REFACTOR: make the Engine.SetThrowOnDisposed method public.  this method can be
          used to disable exceptions caused by accessing previously disposed
          objects; however, it is provided only as a last resort and its use is
          not recommended.

FEATURE: support running the test suite with/via the NCover code coverage tool.

************************* Beta 1.0.4215.24284 RELEASE *************************

BUGFIX: fix bug in how the updater synchronizes the lists of source and target
        files.

BUGFIX: prevent parent and child interpreters from being disposed by the
        interpreter associated with them via the [object dispose] command.

BUGFIX: if the global auto_path or tcl_precision variables are unset, make sure
        they are purged immediately so that they cannot be recreated with their
        original trace callbacks in place.

BUGFIX: the Garuda release files should not be named based on the version of the
        Eagle binaries, even when they are built at the same time.

BUGFIX: fix [rename] of a procedure with leading colons in the original name.

BUGFIX: fix removal of a command or procedure after it has been renamed.  also,
        cleanup and modularize the methods responsible for renaming commands and
        procedures.

BUGFIX: fix [interp alias] to remove leading colons from the alias name prior to
        adding the associated command.

BUGFIX: fix the reported line number when an error is raised while evaluating a
        file.

BUGFIX: check for custom variable resolvers returning a null variable with a
        successful return code.

BUGFIX: the interactive #hcancel and #hexit commands must now use the GetAny
        method of the Interpreter class to grab the current instance.

BUGFIX: prevent the various pkgIndex.tcl files from providing packages to Eagle.

BUGFIX: allow [sql] to use provider assemblies loaded via LoadFrom.

BUGFIX: when unquoting parameters passed to the batch tools, use a more robust
        technique that avoids data-dependant bugs.

BUGFIX: make sure all use of the FOR /F command in the batch tools prevents tabs
        and spaces from being used as delimiters if they could be present in the
        returned values.

REFACTOR: revise initialization of test_path variable so that the lib\Test1.0
          sub-directory inside of the Eagle root directory will also be checked.

REFACTOR: cleanup and simplify the implementation of the [bgerror] command.

REFACTOR: eliminate the use of "new ClientData(null)" by creating an immutable
          static instance of ClientData called Empty.

REFACTOR: make the test numbering in library.eagle more consistent with the rest
          of the test suite.

REFACTOR: track and report the original expected times in the benchmark tests.

REFACTOR: rename the files unbalanced-brace*.eagle to unbalanced_brace*.eagle.

REFACTOR: cleanup test numbering and constraints in the basic.eagle file.

REFACTOR: improve the diagnostic messages from TestOps.Match.

REFACTOR: revise the result of [version] to include the source identifier and
          timestamp information from Fossil.  also, report the assembly build
          timestamp in UTC.

REFACTOR: add the ability for the engine to reserve extra native stack space via
          an internal field.  this can be used to assist in testing the native
          stack overflow checking.

REFACTOR: modify the addConstraint procedure for better Tcl compatibility and to
          prevent duplicate test constraints from being added.  also, add new
          haveOrAddConstraint procedure and compatibility shims to mimic the Tcl
          behavior of the tcltest::testConstraint command.  also, configure the
          Tcltest package using the new configureTcltest procedure.

REFACTOR: add support for userInteraction test constraint and modify the tests
          that require it.

REFACTOR: various test suite changes to assist in running unmodified Tcl test
          files in both Eagle and Tcl via the [tsource] shim.

REFACTOR: remove unnecessary bool-to-int conversions from round(), all bitwise
          operators except "not", and the numeric equality operators.

REFACTOR: cleanup and modularize the methods responsible for disposing and/or
          removing aliases, commands, functions, objects, packages, plugins,
          policies, procedures, traces, etc.

REFACTOR: remove the unused RemoveObjectReference method from the Interpreter
          class.  also, remove the unnecessary UpdateErrorLine method from the
          Engine class.

REFACTOR: *BREAKING CHANGE* remove the -copy option from the [rename] command as
          it violates internal assumptions about the one-to-one relationship
          between command names and tokens.

REFACTOR: *BREAKING CHANGE* add the ability to disable traces, notifications,
          watches, etc when the engine itself needs to set the global errorCode
          and errorInfo variables, via the FAST_ERRORCODE and FAST_ERRORINFO
          compile-time options, respectively.  technically, this is a breaking
          change because, in theory, third-party code may rely on the legacy
          behavior (i.e. being able to trace writes on the global errorCode and
          errorInfo variables).  also, add a VariableFlags argument to the
          CopyErrorInformation method of the IInterpreter interface to be used
          when fetching the global errorCode and errorInfo variable values.

REFACTOR: *BREAKING CHANGE* when handling a stack overflow error generated by a
          script, skip appending excess information to the global errorInfo
          variable while the evaluation stack is being unwound.  also, add the
          concept of nested execution to the engine.  in this context, nested
          execution means that a command, such as [test1] or [test2], wishes to
          evaluate a script and have it treated like the outermost evaluation
          level.  currently, this only affects the new stack overflow handling;
          however, the concept itself is fairly generic and may be used for
          other purposes in the future.

FEATURE: add -format, -pairs, and -names options to the [sql execute] command.
         these options can be used to control how the data reader results are
         returned.  currently, only the list, dictionary, and array formats are
         supported and the array format is the default.

FEATURE: add -commandline option to the [exec] command.  this option causes the
         arguments to be built using the quoting rules required by the shell and
         is useful when the command line may contain quotes and/or backslashes.

FEATURE: add -resolve option to the [package scan] command.  also, modularize
         the package index processing subsystem.

FEATURE: add better support for options that use custom enumerated types from
         plugins loaded into isolated application domains.

FEATURE: new [format] command, compatible with Tcl 8.4.

FEATURE: new -runtimeOption command line option to change user-defined runtime
         options.  also, add the ClearRuntimeOptions and ChangeRuntimeOption
         methods to the IPropertyManager interface.

************************* Beta 1.0.4173.01269 RELEASE *************************

BUGFIX: *MAJOR* fix processing of scalar and array variable names that contain
        characters reserved by the script parser, including the opening and
        closing parenthesis.

BUGFIX: the dir variable used when package indexes are being processed is not
        necessarily guaranteed to be in the global scope; therefore, remove the
        GlobalOnly flag from the associated variable management method calls.

BUGFIX: fix syntax error messages for all commands that, in theory, can take any
        number of arguments.

BUGFIX: the error line number and stack trace should be captured and reported
        when evaluating the scripts for the -preInitialize and -postInitialize
        command line options.

BUGFIX: correct some syntax error messages for [expr].

BUGFIX: the SQLite-related build targets should use the Eagle root directory as
        the source for external files, not the project directory.

BUGFIX: the Tcltest package cannot handle test constraint names containing the
        colon character; therefore, all "file:" and "network:" constraint names
        have been changed to "file_" and "network_", respectively.  also, rename
        the file tcl-unload.tcl to tcl_unload.tcl.

BUGFIX: fix addToPath and removeFromPath detection of the path separator.

BUGFIX: fix locking for callers of the GetVariableViaResolvers method.  the fix
        is that all code that wishes to modify an IVariable object must acquire
        and hold the interpreter lock while doing so.

BUGFIX: remove unnecessary use of the [fixConstraints] procedure in tests where
        there is only one test constraint.

BUGFIX: split and rename tests, as appropriate, where different variations are
        required for Tcl, Eagle, Mono, etc.

BUGFIX: do not use the ToInt64 method of the Enum class as it has the wrong type
        signature, see CodePlex bug #8877.

BUGFIX: revise core marshaller handling for null array parameters.  previously,
        it was impossible to pass a null array parameter via [object invoke].
        also, skip second pass for output-only parameters.

BUGFIX: make the RuntimeOps.BuildCommandLine method compatible with Windows
        command line handling.

BUGFIX: the CreateThread methods of the Engine class should not attempt to use
        the IEngineHost if the interpreter is running in an isolated AppDomain.

BUGFIX: the AutoPathTraceCallback method must save the information from the
        traceInfo object prior to scanning for any package indexes and restore
        it immediately afterwards.  this is necessary because the traceInfo
        object is now shared on a per-thread basis (for performance reasons) and
        the scanning process may cause scripts to be evaluated, thereby causing
        the object to be modified out from under the calling method if any
        variables are accessed during those scripts.

BUGFIX: asynchronous Engine methods should check the result of QueueWorkItem.

BUGFIX: make the syntax error messages returned by the [apply] command match
        those returned in Tcl 8.5 and/or 8.6.

BUGFIX: during the [load] command, only try to unload a plugin upon failure if
        it was at least partially loaded.  also, the UnloadPlugin method must
        validate that the plugin is not null.

BUGFIX: fork test proc-1.5 into Tcl 8.4, Tcl 8.5, and Tcl 8.6 versions due to
        differences in returned syntax error messages.  Eagle runs and passes
        the Tcl 8.6 version.

BUGFIX: modify tests uplevel-13.1 and uplevel-13a.1 to honor the stop-on-error
        test option.

BUGFIX: modify the internals of the WaitVariable method to allow it to be used
        on threads that must pump the message queue.

BUGFIX: for the PowerShell cmdlet, the custom command policy must explicitly
        deny access to all commands if the user does not choose to allow script
        execution to continue; otherwise, the built-in command policies will
        permit "safe" commands to be executed.

BUGFIX: preserve original argument values when resolving method overloads in the
        core marshaller.  also, keep track of the resolved arguments for each
        method overload separately and use the appropriate one when invoking the
        target method.

BUGFIX: disable IIS integrated-pipeline mode detection for Mono (crashes on
        startup when running on Mono 2.6).

BUGFIX: modify test constraint on test object-7.1 so that it will run on Mono
        version 2.6 or later.

BUGFIX: fix core marshaller handling for the System.Delegate parameter type.

BUGFIX: modify the #lrinfo, #grinfo, and #rinfo interactive commands so that
        they fulfill their stated goal of never modifying the local result.

BUGFIX: the AttributeFlags.Have method should return true if the flags are valid
        and there are no flags to be checked for.

BUGFIX: the [object members] command should return the type for field members
        when the -signatures option is used.

BUGFIX: the [info engine objectids] command should return an empty GUID if null
        or empty strings are used when applying the ObjectId attribute.

BUGFIX: the GetHiddenIExecute method of the Interpreter class should be private.

BUGFIX: the WriteHistoryInfo method of the default host should not hold the
        interpreter lock while calling the virtual method(s) to write the
        history.

BUGFIX: modify the xaml-1.1 and xaml-1.2 tests so they can pass when run in
        application domains that are already running a WPF application.

BUGFIX: add missing destructors to the IHost implementations provided by the
        library (e.g. Console, Core, and Diagnostic).

BUGFIX: on Windows, grab a global mutex in addition to the normal one to prevent
        setup from running if Eagle is being used in a different user session.

BUGFIX: parser methods [where an interpreter is optional] must not try to check
        the readiness of null interpreters.

BUGFIX: fix incorrect handling of the -exitcode option to [exec].

BUGFIX: the procedures [execShell], [testExec], and [execTestShell] in the
        script library should use [uplevel], not [eval].

BUGFIX: when running tests in Tcl, do not mask errors from [tcltest::test].

BUGFIX: modify logic in the Select method of the TclWrapper class so that it
        prefers to retain the best build seen so far unless there is some
        compelling reason not to do so (i.e. better version, higher priority,
        debug affinity, or threaded status).

BUGFIX: fix the internal event wait loops of the [exec] and [socket -server]
        commands to be far less processor intensive.  added another test.

BUGFIX: fix [array] with variables that are redefined after being undefined.

BUGFIX: when end-of-file is encountered using the three argument form of [gets],
        return -1, not 0.

BUGFIX: fix OutOfMemoryException when using [gets] with huge files.

BUGFIX: fix formatting of long command history items by the default host.

BUGFIX: the icon and title related private fields of the console host should no
        longer be static.

BUGFIX: remove improper caching of the command history flag for the interpreter
        by the engine.

BUGFIX: do not try to setup the console title, icon, and mode unless the console
        window is actually available.  also, only try to use the native console
        APIs on Windows.

BUGFIX: make sure variable names never contain array element references when an
        explicit array element index has been specified by the caller in methods
        directly involved in variable management (e.g. GetVariableValue2,
        SetVariableValue2, UnsetVariable2, and ResetVariable2).

BUGFIX: for the [library certificate] sub-command, make sure to check the result
        of the CertificateOps.GetCertificate method even if the -verify option
        is not used.

BUGFIX: for [sql execute -execute reader], make sure the variable name where the
        row data will be stored does not represent an array element name.

BUGFIX: make sure [string compare] always returns -1, 0, or 1 even though the
        return value from the String.Compare method is not restricted to these
        values (COMPAT: Tcl).

BUGFIX: add missing test constraints for the test data files bad_subst.txt,
        garbage.txt, file.dat, test.xls, client.tcl, and tcl-unload.tcl.

BUGFIX: do not try to read the test_cops and test_base_cops variables in the
        benchmark test file if they are not set.

BUGFIX: add missing Eagle test constraint to the parser-3.2 test.

BUGFIX: do not use the !eagle test constraint (use tcl instead).

BUGFIX: fork tests fileIO-1.9, fileIO-1.10, and fileIO-1.11 into Tcl and Eagle
        versions due to differences in how the underlying encoding subsystems
        treat invalid ASCII, UTF-8, and Unicode code points.

BUGFIX: fork test expr-3.2 into Tcl and Eagle versions due to major differences
        in the required test constraints.

BUGFIX: fix network test constraints for the tests basic-1.24.1, basic-1.24.2,
        basic-1.25, basic-1.26, basic-1.27, and basic-1.28.

BUGFIX: constrain the tests commands-1.1, commands-1.2, and commands-1.3 to run
        only in the Eagle Shell.

BUGFIX: constrain the test object-4.2.1 to run only in the Eagle Shell.  this is
        necessary because the dynamically generated assembly assumes the Eagle
        library assembly is located in the application directory (i.e. it fails
        to load properly, causing spurious test failures).

BUGFIX: constrain the WPF tests to run only if the test thread is running as a
        single-threaded apartment (STA).

BUGFIX: in the interactive loop, mark the debugger as active when evaluating the
        shell initialization script.  also, if the shell initialization script
        causes the interpreter to be marked as exited, skip the main loop.

BUGFIX: when checking for token breakpoints from the Engine.EvaluateTokens
        method, make sure the debugger is not already active.

BUGFIX: return an appropriate error message when the -eval argument to [regsub]
        cannot not be parsed as a list.

BUGFIX: fix the binding flags for the MarshalOps.Identity method so that the
        -identity option to [object invoke] works again.

BUGFIX: the GetResult, SetResult, and ResetResult methods of the Event class
        should close the event wait handles they open; also, they should not
        open an event wait handle unless it is going to actually be used.

BUGFIX: the EventCallback method of the TclThread class should close the idle
        event wait handle that it opens.

BUGFIX: fix subtle race condition in test tclLoad-1.5 where the Cancel event may
        be received and completed before the asynchronous Evaluate event has
        started evaluating the script.

BUGFIX: fix race condition in tests object-10.2 and object-10.3 by making sure
        the global result variable is created prior to starting the threads.

BUGFIX: fix failure of test sql-1.2 when the global result variable is already
        set.

BUGFIX: add constraint to test string-97.1 to prevent it from running on Mono
        (Mono bug #636939).

BUGFIX: missing escapes for parenthesis characters in batch file tools.

BUGFIX: all token breakpoint related classes should be serializable.

BUGFIX: prevent custom IHost implementations from triggering remoting and/or
        serialization exceptions in the default host and the interactive loop.

BUGFIX: make sure to copy TraceInfo objects prior to passing them on to the
        interactive loop (e.g. for variable watches).

BUGFIX: fix console positioning issue when displaying information in non-boxed
        output styles.

BUGFIX: in the GlobalState class, fix ThreadStatic performance issue by reducing
        the number of accesses to the cached current thread Id.  thanks to Eric
        Eilebrecht of Microsoft for pointing this out.

BUGFIX: *BREAKING CHANGE* in the subSpec argument to the [regsub] command, treat
        all backslashes as literal when they are not followed by an ampersand, a
        decimal digit, or another backslash (COMPAT: Tcl).

REFACTOR: *PERF* rewrite the implementation for the [array set] command to avoid
          using SetVariableValue2 in a tight loop.

REFACTOR: miscellaneous cleanup of the Example and TclSample projects.

REFACTOR: cleanup and robustify library path handling in the GlobalState class.

REFACTOR: add getPluginPath procedure to the script library to return the fully
          qualified path for the first plugin matching the specified pattern.

REFACTOR: reform internal and external use of the ExitCode enumeration.

REFACTOR: add checkForPathFile constraint checker for finding a file along the
          PATH.

REFACTOR: revise conditionals for the GetEnumerator method of the ArraySearch
          class.

REFACTOR: make sure the scalar value for a variable is set to null prior to
          converting it into an array variable.

REFACTOR: make sure the original command line ends up in the log file for the
          test suite.

REFACTOR: permit the script arguments to be set via new overloads of the web
          service methods.  add methods for evaluating an expression.  also,
          support automatically detecting the library path to use via the
          Utility.DetectLibraryPath method.

REFACTOR: modify the TclWrapper.Find method to accept an optional callback used
          to find additional Tcl library builds (presumably from locations that
          would otherwise be unknown to and/or unsearched by this method).  make
          the comments in this method accurate again.

REFACTOR: modify the Argument and Result classes to support implicit conversions
          from the Uri class.

REFACTOR: uniformly wrap usage for the ShouldProcess and ShouldContinue methods
          of the Cmdlet class.

REFACTOR: add NotifyGlobal property to the IInterpreter interface.  this can be
          used to disable multi-interpreter notifications for an interpreter.

REFACTOR: modify handling for unknown processor architectures and/or operating
          systems and in the NativeStack class.

REFACTOR: update Fossil tool w/source to latest release version 20110512145652.
          this is a custom built binary that supports SSL and has been signed
          with an Authenticode certificate.

REFACTOR: in the Parser.ConvertElement method, avoid superfluous calls to the
          StringBuilder.Append method by appending common character pairings in
          one step instead of two.  also, optimize the initial capacity for the
          StringBuilder objects used by the Parser.SplitList method.

REFACTOR: modify the RuntimeOps.ExtractPolicyContextAndCommand method to enable
          a null command type to simply skip command type matching.

REFACTOR: revise handling of the _Commands.Alias class when looking for commands
          in the core library to add automatically.

REFACTOR: factor common script cancellation code out of the CancelThreadStart
          and ConsoleCancelEventHandler methods into the CancelAnyEvaluate
          method.  expose the CancelAnyEvaluate method via the IEngineManager
          interface.

REFACTOR: add ListCommands, ListProcedures, ListIExecutes, and ListFunctions
          methods to the IEntityManager interface.  also, modify the code for
          [info commands], [info procs], and [info functions] to use these new
          methods.

REFACTOR: add ListOperators method to the Interpreter class.  also, modify the
          code for [info operators] to use this new method.

REFACTOR: expose two overloads of the GetProcedure method in the Interpreter
          class.

REFACTOR: add ListChannels method to the IEntityManager interface and modify the
          [file channels] and [info channels] commands to use it.

REFACTOR: add IsStreamForChannel, AddChannel, and RemoveChannel methods to the
          IEntityManager interface and modify the [open], [close], and [socket]
          commands to use them.

REFACTOR: allow custom IHost implementations to force the host output and error
          channels to be flushed per call to [puts].

REFACTOR: add test to verify that there are no duplicate ObjectIds present in
          the core library.

REFACTOR: add tests to verify the correct static and non-static members are
          exposed by the Interpreter class.

REFACTOR: split shell argument processing into a new method named ShellMainCore,
          which is designed to be used by both the standard shell and external
          applications.

REFACTOR: the private DiagnosticStream class should implement the IDisposable
          pattern.

REFACTOR: modularize the setup build process to allow for multiple setups to be
          built using common idioms [and Pascal routines].

REFACTOR: expose Complain, DebugTrace, GetCurrentThreadId, IsSameAppDomain, and
          InvokeDelegate, GetAssemblyConfiguration, GetAssemblyTitle, NextId,
          GetTclVersion, DownloadData, DownloadFile, and RefreshAutoPathList
          methods via the Utility class.

REFACTOR: add the PrivateIsDebuggerActive method to the interpreter class for
          use in performance critical code paths through the engine.

REFACTOR: allow custom IHost implementations to access and/or override the
          SetupCancelKeyPressHandler method of the console host.  by default,
          this method is used to hookup [or unhook] the integration between the
          script cancellation functionality provided by the interpreter and the
          CancelKeyPress event of the System.Console class.

REFACTOR: add BeginSection and EndSection methods to the IHost interface.  for
          now, these methods are used to notify custom IHost implementations
          when the header or footer is being written.

REFACTOR: revise handling of interactive input to allow custom hosts to force
          the interactive prompt to be displayed even when the input for the
          host is being redirected.

REFACTOR: change the plugin flags for the _Plugins.Object class to mark it as
          not containing any functions or traces.

REFACTOR: make sure that the two argument form of [after] never blocks longer
          than two seconds at a time.

REFACTOR: add an overload of Interpreter.DisposeTclBridges to delete all bridges
          associated with a specific Tcl interpreter.

REFACTOR: modify [tcl primary] to check for and return Tcl interpreters provided
          by the Eagle Package for Tcl (Garuda) as well.  also, modify the Tcl
          library module reference count management to deal with the possibility
          of the Tcl library module being loaded without Eagle doing the actual
          loading (i.e. when Eagle is loaded via Garuda).  finally, modify the
          test suite to support running selected tests using an external Tcl
          shell (i.e. tclsh) as this is necessary to fully test this new native
          Tcl integration functionality.

REFACTOR: modify the checkForShell constraint to account for the Eagle Package
          for Tcl scenario.

REFACTOR: enhance error reporting by the tclLoad-1.5 and tclLoad-1.6 tests.

REFACTOR: when running on Windows, use the native WinVerifyTrust API to verify
          Authenticode signatures on executable files.  unfortunately, the only
          way to accomplish this in pure managed code is to take a dependency on
          the .NET Framework 3.5 and use the AuthenticodeSignatureInformation
          class and this project must support the .NET Framework 2.0 or higher.

REFACTOR: the Create and InteractiveLoop methods of the Interpreter class should
          take an IEnumerable of string instead of a string array for the args
          parameter.

REFACTOR: more minor improvements to the user-interface for the updater.  also,
          improvements to the file copying, security, code modularity, and the
          overall readability of the code.

REFACTOR: modify the SQLite build integration to copy the native DLL appropriate
          to the current processor architecture.

REFACTOR: augment, cleanup, and rename various methods in the DebugOps class
          (e.g. Debug -> WriteDebug, Trace -> WriteTrace, etc).

REFACTOR: move static GetHostColors, HostSleep, IsHostOpen, and Sleep methods to
          the RuntimeOps class.

REFACTOR: cleanup and make uniform the usage of [appendArgs] in the test suite.

REFACTOR: add !monoDebugger test constraint to all tests that pass when running
          on Mono and that fail when running under the Mono debugger (e.g.
          basic-1.20, basic-1.21, object-10.2, object-10.3, socket-1.2, and
          tclLoad-1.5).  these test failures [when running under the Mono
          debugger] all involve threads, either directly or indirectly;
          therefore, the Mono debugger may have serious threading issues.

REFACTOR: revise the semantics behind closing event handles in the TclThread
          class.

REFACTOR: revise the tests tclLoad-1.5 and tclLoad-1.6 for more specific failure
          reporting.

REFACTOR: use the strongly typed pair and triplet classes in the EventCallback
          method of the TclThread class for clientData passed to the Substitute
          and SetVariable event types.

REFACTOR: add diagnostic messages to all the methods in the ThreadOps class.

REFACTOR: make the naming of constants and variables of the enumerated type
          StringComparison consistent with each other and the .NET Framework.

REFACTOR: for tests basic-1.20 and basic-1.21, work around a timing issue in the
          Mono debugger that causes timeouts.

REFACTOR: make output of memory, stack, and drive information in the test suite
          prologue and epilogue easier to read.  also, make output of the test
          constraints and compile-time options easier to read.

REFACTOR: embed the source timestamp from the Fossil checkout into the primary
          assembly via the new AssemblySourceTimeStamp attribute.

REFACTOR: cleanup and move all Pascal code out of the setup script and simply
          #include it from the setup script.

REFACTOR: remove the parse token and expression related breakpoint types from
          the default setting used by the debugger.

REFACTOR: add the BeginProcessing, EndProcessing, and DoneProcessing methods to
          the IInteractiveHost interface.

REFACTOR: when running on the .NET Framework 4.0, use the RunAndCollect flag for
          dynamically created assemblies containing delegate types that do not
          require P/Invoke.

REFACTOR: add NoConsole interpreter creation flag.  when this flag is used, the
          console host will not be used as the fallback interpreter host during
          interpreter creation.

REFACTOR: *BREAKING CHANGE* replace the -fast option to the [object create],
          [object invoke], and related commands with the new -argumentflags
          option.

REFACTOR: *BREAKING CHANGE* break out various methods from the IInterpreter
          interface to the IDebugManager, IErrorManager, IInteractiveManager,
          INotifyManager, IPropertyManager, IScriptManager, and ISynchronize
          interfaces.

REFACTOR: *BREAKING CHANGE* the IdentityEncoding class should be sealed.

REFACTOR: *BREAKING CHANGE* rename the EvaluateContext class and interface to
          AsynchronousContext.

REFACTOR: *BREAKING CHANGE* an interpreter path argument is now required for the
          [interp queue], [interp resetcancel], and [interp service] commands.

REFACTOR: *BREAKING CHANGE* rename the ConsoleChannel enum to ChannelType.

REFACTOR: *BREAKING CHANGE* rename the existing WriteResultInfo methods of the
          IInformationHost interface to WriteAllResultInfo and add new methods
          in their place that are designed to write one named result.

REFACTOR: *BREAKING CHANGE* revise results for the commands [host color],
          [host namedcolor], [host position], and [host size].  these commands
          now return the previous values for those values that were modified, if
          any; otherwise, the current values are returned.

REFACTOR: *BREAKING CHANGE* modify the SystemEncoding and DefaultEncoding fields
          of the Interpreter class to prevent them from ever emitting byte order
          marks.

REFACTOR: *BREAKING CHANGE* revise IHistoryManager interface to keep track of
          metadata associated with the command execution history.  add
          LoadHistory and SaveHistory methods to the IHistoryManager interface.
          add HistoryData and HistoryFilter classes to facilitate easy loading,
          saving, and filtering of history data.  gathering of command execution
          history is still disabled by default.  to enable it, use the command
          [debug history true].  also, modify WriteHistoryInfo methods of the
          IInformationHost interface to accept an IHistoryFilter argument for
          filtering the output.  finally, rename the #hisinfo interactive
          command to #histinfo.

REFACTOR: *BREAKING CHANGE* move [debug result] to [host result].

REFACTOR: *BREAKING CHANGE* rename the -verify option for [library certificate]
          and [object certificate] to -chain.  this is being done to clarify
          that it enables verification of certificate chains, not Authenticode
          signatures.  originally, the name -verify was chosen to resemble the
          Verify method of the X509Certificate2 class; however, the original
          name has proved to be too confusing.

REFACTOR: *BREAKING CHANGE* add Core procedure class and move default procedure
          implementation of the Execute method to it.

REFACTOR: *BREAKING CHANGE* add Core resolver class and move default resolver
          implementations of the GetIExecute and GetVariable methods to it.

REFACTOR: *BREAKING CHANGE* change the default string comparison type for the
          [string compare], [string equal], and [string map] sub-commands to
          ordinal.

REFACTOR: *BREAKING CHANGE* rename the _Constants.Position and _Constants.Size
          static classes to _Position and _Size, respectively.

FEATURE: add -autopath option to the [package scan] command.  this option will
         force the auto-path for the interpeter to be rebuilt from scratch.

FEATURE: add ResetErrorInformation method to the Engine class to reset the error
         information for the specified interpreter in a thread-safe manner.

FEATURE: add support for the TimeSpan data type to the core marshaller and to
         the value, expression, and option subsystems.

FEATURE: add support for marshalling array objects via scalar script variables
         containing opaque object handles that refer to array objects of the
         appropriate type.  this functionality only makes sense for method
         parameters that are input-only (i.e. because there would be nowhere to
         store the subsequent output without overwriting the contents of the
         variable, thereby destroying the underlying array object); otherwise,
         an error is raised.

FEATURE: add -copy option to the [rename] command.  using this option will cause
         the command or procedure to be associated with the old name and the new
         name.

FEATURE: add [clock isvalid] and [string is datetime] sub-commands to check if a
         string contains something that can be interpreted as a date.

FEATURE: add EvaluateExpression engine mode.  also, add support for evaluating
         expressions to the MSBuild, PowerShell, and WiX integration projects.

FEATURE: add the ability to restrict the permitted token types during expression
         evaluation (i.e. operators and functions only, etc).  this feature has
         the potential to slow down the whole engine a bit; therefore, it may be
         disabled using the EXPRESSION_FLAGS compile-time option.

FEATURE: add -noTrace command line option and NoTrace environment variable to
         allow tracing to be disabled.

FEATURE: add the PolicyObject and ResolverObject properties to the IInterpreter
         interface.  these properties are reserved for use by custom policies
         and resolvers, respectively.

FEATURE: add [object exists] sub-command to determine if an opaque object handle
         represents a currently valid object.

FEATURE: add _Commands._Delegate base command implemenation for use by external
         applications and plugins.  this command is used to wrap an arbitrary
         delegate, making it easily callable from the script engine.  there are
         two modes.  the first is "raw" mode (i.e. method calls do not go
         through the core marshaller and the only supported type conversions are
         those that can be performed via Type.DefaultBinder).  the second is
         "normal" mode (i.e. method calls go through the core marshaller, using
         techniques very similar to [object invoke]).

FEATURE: add and expose the WriteViaIExecute method from the Utility class.
         this method is designed to be used by external applications and plugins
         for the sole and express purpose of writing to the standard output
         channel (or another channel of their choosing) via the [puts] command
         (or another command of their choosing).  this functionality could have
         been accomplished before by using the GetIExecuteViaResolvers and
         ExternalExecuteWithFrame methods of the Interpreter and Engine classes,
         respectively; however, the WriteViaIExecute method provides a far more
         convenient way to perform this task.

FEATURE: add -strictmember option to [object create], [object invoke], and
         [library call].

FEATURE: add -index and -trace options to [library call] for the sake of parity
         with the other commands that use the method overload resolution engine.

FEATURE: add Quiet environment variable to support the ability to disable user
         notifications for non-fatal errors even if the originating interpreter
         is unknown or has been disposed.

FEATURE: add eagle_platform(wow64) element that will be non-zero if the current
         process is running in the Win32-on-Win64 subsystem.

FEATURE: add -objectflags option to [object create], [object invoke], and all
         related commands that use FixupReturnValue.

FEATURE: add interactive #tclsh and #tclinterp commands to control native Tcl
         evaluation mode.  when native Tcl evaluation mode is enabled, all
         scripts entered interactively will be evaluated using the selected
         native Tcl interpreter, if available.

FEATURE: add interactive #histclear, #histfile, #histload, and #histsave
         commands to manage the command history for the interpreter.

FEATURE: add SourceTimeStamp to the [info engine] sub-command to query the
         source timestamp of the Fossil checkout for the assembly, if any.

FEATURE: add [after active] to check if the event loop is active.

FEATURE: add native Tcl package project (Garuda) to allow the Eagle library to
         be loaded and used from a Tcl interpreter via the native CLR API.  add
         the NativePackage class to Eagle to facilitate seamless integration.
         add setup that is capable of installing it into the installed ActiveTcl
         library location.

FEATURE: add -erroronempty option to [interp service] and to the IEventManager
         interface to cause an error to be returned when there are no more
         events to process (i.e. the event queue is empty).

FEATURE: add -nocomplain option to [tcl create] and [tcl command create] to
         prevent exceptions from being thrown during the disposal of bridged
         commands.

FEATURE: add -time option to [tcl cancel], [tcl eval], [tcl expr], [tcl source],
         and [tcl subst] to measure and report how long each operation takes.

FEATURE: add -time and -timevar options to [sql execute] to allow profiling of
         queries against a database connection.

FEATURE: add -args option to [regsub] to enable special handling of \P (i.e. the
         original "exp" argument), \I (i.e. the original "string" argument), and
         \S (i.e. the original "subSpec" argument) backslash escape sequences in
         the subSpec argument (these are typically used with [regsub -eval] to
         provide additional context).

FEATURE: add -nostrict option to [regsub] to enable alternative handling of
         backslashes in the subSpec argument.  if enabled, causes any backslash
         not followed by an ampersand, a decimal digit, or another backslash to
         be ignored (i.e. the character following the backslash will be inserted
         verbatim into the output string).

FEATURE: add -options option to the [string compare] and [string equal]
         sub-commands to help control the string comparison when the -culture
         option is used.

FEATURE: add -comparison option to the [string compare], [string equal],
         [string first], and [string last] sub-commands to control the string
         comparison type used when the -culture option is not used.  also, add
         -nocase option to the [string first] and [string last] sub-commands.

FEATURE: add -policies, -deny, and -preInitialize options to the PowerShell
         cmdlet.

FEATURE: *BREAKING CHANGE* add LibraryPath and AutoPathList properties to the
         IInterpreter interface.  modify several overloads of the Create method
         for the Interpreter class to permit these values to be specified at
         creation time.  modify auto-path handling to take these new properties
         into account.

FEATURE: *BREAKING CHANGE* add InterpreterSettings class to for streamlined
         interpreter creation with exactly the required options and settings.

FEATURE: *BREAKING CHANGE* add -exceptions option to the [tcl eval], [tcl expr],
         [tcl source], and [tcl subst] commands.

FEATURE: *BREAKING CHANGE* add -qualified option to [object members] to return
         assembly qualified type names when returning type signatures.

FEATURE: *BREAKING CHANGE* add a pre-init script argument to the Create method
         of the Interpreter class.  this script, if not null, is guaranteed to
         be evaluated prior to the init script.  also, add the PreInitialize
         method to the IInterpreter interface.

************************* Beta 1.0.4093.38850 RELEASE *************************

BUGFIX: when checking for breakpoints from the Engine.IsCanceled method, make
        sure the debugger is not already active.

BUGFIX: make the PathOps.GetBinaryPath method work under integrated-pipeline
        mode (IIS7+).  also, do general cleanup and add diagnostic messages.

BUGFIX: the [string first] and [string last] sub-commands should always use
        ordinal string comparisons.

BUGFIX: fix truncated backslash escape sequence handling in the parser, see SF
        bug #3200987.

BUGFIX: when [flush] is called for a channel (including stdout and stderr) that
        does not yet have any writers created (i.e. because [puts] has not been
        called on it first), it fails.

BUGFIX: in the engine, reset error information for non-error return codes while
        unwinding the evaluation stack.

BUGFIX: the interpreter nesting level should not be modified when executing
        interactive commands via the ExecuteInteractiveCommand method.

BUGFIX: the [tcl load] command should skip searching alternate locations when a
        file name is specified.  in this case, the find flags were not being
        honored by the LoadTcl method of the Interpreter class.  also, both the
        per-user and per-machine registry keys are checked for Tcl installs.

BUGFIX: the file name patterns used to find installed Tcl libraries on Mac OS X
        should not be case-sensitive.  also, cleanup the naming and scoping
        conventions used by the pattern-related static data.

BUGFIX: the debugger should be set active prior to the execution of interactive
        commands since they can now cause the evaluation engine to be used.

BUGFIX: modify the Mono runtime version checking to account for minor versions
        with more than one digit.

BUGFIX: manage commands and hidden commands in a way that allows commands to use
        the same names as hidden commands (COMPAT: Tcl).

BUGFIX: fix typo in PrivateGetProcedure where the name was being used instead of
        the token.

BUGFIX: hold the interpreter lock during the [interp hidden] command.

BUGFIX: the test tclLoad-1.2 cleanup script should not assume the setup script
        was successful.

BUGFIX: add missing refCount test constraints to the library-1.1.*, library-3.*,
        library-4.1, and object-6.1 tests.

BUGFIX: return the full test output as the result of [test1] and [test2] even
        when handling nested tests.

BUGFIX: fix incorrect errorInfo being reported by the engine when error handling
        related flags are passed to the EvaluateScript method.

BUGFIX: the updater should ignore the in-use copy of itself when performing an
        update.

BUGFIX: prevent the updater from raising an exception when a duplicate release
        is encountered in the parsed release data.

BUGFIX: when a project file sets the SignAssembly property to false it should
        set the DelaySign property to false as well.

BUGFIX: when compiling for Mono, disable all compiler warnings that are known to
        be false alarms.  technically, the warnings are valid; however, the code
        is correct and the warnings are known to be harmless.

BUGFIX: when compiling for Mono, work around the goto related compiler bug (Mono
        bug #671488).

BUGFIX: the updater should not report an exception when the update process has
        simply been canceled.

BUGFIX: the updater should properly support UAC (User Account Control) when
        running on Windows Vista or later.  this includes having an embedded
        manifest that requires full administrator rights and detecting when
        these rights are actually present.  we need these rights because Eagle
        will typically be installed per-machine (i.e. either in %ProgramFiles%
        or a similarly privileged location).

BUGFIX: fix help for the interactive #subst command.  also, fix error message
        for the interactive #vinfo command.

BUGFIX: fix value of the $eagle_platform(culture) variable.  it should be the
        culture for the assembly, not the current culture.

BUGFIX: the SSL certificate checking used by the software update checking
        mechanisms [in the library and the updater] should allow for any valid
        certificate (i.e. one that would have been seen as trusted without the
        custom SSL certificate checking in place) in addition to the custom
        software updates SSL certificate.

BUGFIX: support checking for administrator rights when built without the NATIVE
        compile-time option.  unfortunately, Mono does not handle UAC elevation
        checking in their WindowsPrincipal class implementation and [as of Mono
        2.8.2] does not correctly handle P/Invoke using an ordinal entry point
        (Mono bug #636966); therefore, checking for administrator rights never
        works correctly on Mono for Windows.

BUGFIX: remove unnecessary optional argument handling for the interactive #iinfo
        command.

BUGFIX: exclude the proper files from the Core and Runtime binary SFX archives.

BUGFIX: *BREAKING CHANGE* modified how the local flags are managed by the code
        in the interactive loop.  previously, the interactive commands used to
        change the local engine, substitution, and event flags were not useful
        because the flags would always be reset prior to the evaluation of the
        next interactive command or script.

REFACTOR: update Fossil tool w/source to latest release version 20110316111914.
          this is a custom built binary that supports SSL and has been signed
          with an Authenticode certificate.

REFACTOR: modify the interactive #clearr, #copyr, #fresr, #lrinfo, #mover,
          #grinfo, #nullr, #resr, #rinfo, and #setr commands to prevent the
          local result from being displayed because they either already show it
          or set it to some predefined state.

REFACTOR: modify the interactive #show command to avoid modifying the local
          result (even in the event of an error).

REFACTOR: revise empty result checking logic in the WriteResultInfo method of
          the default host.  the result should not be considered empty if the
          return code does not indicate success.

REFACTOR: make the naming of internal EventWaitHandle variables more consistent
          and correct.

REFACTOR: modify [info varlinks] to prevent undefined links being returned.

REFACTOR: rename some local variables and private methods in the TclWrapper
          class to be consistent.  also, revise logic in the Select method to
          avoid deeply nested if statements.

REFACTOR: add unsupported third-party hooks into the Tcl library recognition
          algorithm via optional extra regular expressions.

REFACTOR: the ResultList class needs a ToString method overload with a custom
          separator.  also, the semantics of the ToRawString method should be
          consistent accross the ArgumentList, ResultList, StringList, and
          StringPairList classes.

REFACTOR: modularize and reorganize the settings management code in the
          EagleServices project.

REFACTOR: keep track of the primary thread (i.e. the thread that the library was
          actually initialized on).

REFACTOR: make the sizing and spacing of controls consistent for the updater
          form.  also, modify the form title text to include the version of the
          updater.  finally, modify the default log file name to include the
          assembly name of the updater.

REFACTOR: for formal parameters and variable declarations, use IPair, IAnyPair,
          ITriplet, and IAnyTriplet instead of Pair, AnyPair, Triplet, and
          AnyTriplet, respectively.  also, use IPair<string>, IPair<object>,
          ITriplet<object> instead of StringPair, ObjectPair, and ObjectTriplet,
          respectively.  finally, add IMutableAnyPair, IMutableAnyTriplet,
          MutableAnyPair, and MutableAnyTriplet (i.e. mutable versions of the
          *AnyPair and *AnyTriplet interfaces and classes).

REFACTOR: revise result handling for the Initialize and InitializeShell methods
          of the Interpreter class.  now, the result will be modified only upon
          failure.

REFACTOR: classes should only derive from the ScriptMarshalByRefObject class
          when the ISOLATED_INTERPRETERS and/or ISOLATED_PLUGINS compile-time
          options are enabled.

REFACTOR: the RemoteAuthorizer and RemoteObject nested classes within the
          Eagle._Tests.Default class should be sealed.

REFACTOR: revise the return value handling of the core marshaller for nested
          generic lists of simple types (e.g. IList<IList<T>>, where T is byte,
          int, string, etc).  add the TestGenericList nested class within the
          Eagle._Tests.Default class to aid in verifying this functionality.

REFACTOR: make the [button] and [toplevel] commands in the EagleToolkit project
          thread-safe.  also, fix the missing ObjectId attribute to the public
          delegate declared in the Toplevel form.

REFACTOR: revise the custom command policy implementation in the sample project.

REFACTOR: cleanup the custom WM_PAINT message handling in the TextProgressBar
          control used by the updater.

REFACTOR: add an optional delay before the updater checks to see if Eagle is
          running.

REFACTOR: clarify the prompt for test xaml-1.1.

REFACTOR: reorganize all members of the Interpreter class into appropriate
          categorized regions within the source file.

REFACTOR: move the GetFileScript, GetLibraryScript, GetStartupScript, and
          LinkVariable methods from the Interpreter class to the RuntimeOps
          class.

REFACTOR: move the TraverseCallStack method from the Interpreter class to the
          CallFrameOps class and rename it to Traverse.

REFACTOR: rename the ReturnCodeMessages property of the Interpreter class to
          TestReturnCodeMessages.

REFACTOR: cleanup resolver related flags and their associated semantics.  also,
          rename the Resolve* methods of the IResolveManager interface (and
          their associated identifiers) to Match*.

REFACTOR: make handling of the compile-time option list more robust.

REFACTOR: update the Tcl TIP #285 integration functionality.

REFACTOR: update System.Data.SQLite integration and add tests.

REFACTOR: add stack reserve and commit to the result of [debug stack].

REFACTOR: cleanup extraneous using statements in the updater code.  also, reset
          the maximum value for the progress bar after using the animation hack
          [on Windows Vista or later].

REFACTOR: the updater status display should not be reset after the process has
          completed.

REFACTOR: revise handling of the WhatIf option to the updater.  when an attached
          debugger is present, this option will still default to true; however,
          it can now be overridden via the command line.

REFACTOR: make all header section colors uniform by default.

REFACTOR: skip the winForms-8.1 tests when running on Mono (Mono bug #665981).

REFACTOR: add IGetClientData, IHaveClientData, and ISetClientData interfaces to
          manage the clientData for an entity.

REFACTOR: cleanup and modularize display handling of variable (IVariable) and
          object (IObject) information by the default host.

REFACTOR: cleanup and modularize the interactive input processing code, removing
          the code duplication with the #queue interactive command.  also, add
          more diagnostics to the help troubleshoot any issues that may arise,
          especially on Mono.

REFACTOR: rename the Cancel method of the IDebugger interface to Reset.  add an
          Initialize method to the IDebugger interface to reset the internal
          debugging state to its initial default (i.e. enabled and inactive).

REFACTOR: revise handling of root registry keys by the SetupOps and TclWrapper
          classes.

REFACTOR: *BREAKING CHANGE* modify argument handling for the [parse command],
          [parse expression], and [parse script] sub-commands.  the substitution
          flags are now an option.  also, add options for the starting index and
          the number of characters to consume.

REFACTOR: *BREAKING CHANGE* remove the obsolete prefix parameter from the
          WriteFlagInfo methods of the IInformationHost interface.

REFACTOR: *BREAKING CHANGE* rename WriteHistory methods of the IInformationHost
          interface to WriteHistoryInfo.  also, these methods should validate
          the interpreter and history list prior to accessing them.

REFACTOR: *BREAKING CHANGE* add the assembly name, assembly culture, release
          notes, and protocol Id to the update.txt file.  also, modify the build
          tools and the updater to handle these changes.  unfortunately, this
          will break the interactive #check command in all previous versions of
          Eagle.  the final format of the update.txt file will be locked down
          prior to RTM.

REFACTOR: *BREAKING CHANGE* rename the CopyReturnInformation method of the
          IInterpreter interface to CopyErrorInformation.

REFACTOR: *BREAKING CHANGE* the LoadPlugin method should not attempt to actually
          add the newly loaded plugin to the interpreter.  add another overload
          of the UnloadPlugin method that unloads a plugin without requiring it
          to be present in the interpreter.

REFACTOR: *BREAKING CHANGE* start cleanup work on the IInterpreter interface by
          breaking various pieces off into their own sub-interfaces.  the new
          IEngineManager interface is for executing commands and evaluating
          scripts.  the new IEntityManager interface is for checking, fetching,
          adding, and removing entities.  the new IHistoryManager interface is
          for managing the per-thread execution history.  the new
          IPackageManager interface is for high-level package management (e.g.
          present, provide, and require).  the new IPluginManager interface is
          for loading, unloading, and interfacing with plugins.  the new
          IResolveManager interface is for managing and interfacing with the
          list of resolvers.  the new IResourceManager interface is for fetching
          needed resources (e.g. error message strings).  the new
          ISecurityManager interface is for managing the security settings of
          "safe" interpreters.  the new ITclManager interface is for loading,
          unloading, and interfacing with native Tcl libraries.  the new
          IVariableManager interface is for adding, checking, getting, setting,
          and unsetting variables and their values.

FEATURE: add interactive #prevr command to set the local result to previous
         result for the interpreter.

FEATURE: add interactive #nextr command to set the previous result for the
         interpreter to the local result.

FEATURE: add interactive #overr command to set the local return code and result
         to the specified value.

FEATURE: add [debug function] and [debug operator] sub-commands to enable the
         ability to set breakpoints on functions and operators.

FEATURE: add -verbatim option to [sql execute].  using this option prevents the
         parameter value string from being automatically converted to another
         type via the Value.GetValue method.

FEATURE: add -string option to [split].  this option is useful when a delimiter
         consists of multiple characters.

FEATURE: support finding Tcl stardlls created by the KitCreator tool.  special
         thanks goes to Roy Keene for providing these valuable resources to the
         Tcl community.

FEATURE: add interactive #reset command to reset the debugger to its default
         initial state (i.e. enabled and inactive).

FEATURE: add official shortcut keys to the updater for viewing the log file
         (Ctrl-L), launching an external shell (Ctrl-E), or starting an internal
         shell (Ctrl-F2).  in order to start an internal shell successfully, the
         -shell command line option must have been specified on startup.

FEATURE: support overriding the interpreter instance flags through the use of an
         environment variable named InterpreterFlags.

FEATURE: add support to the build tools for tagging and building the official
         NuGet.org and SymbolSource.org packages.

FEATURE: add [info ptid] sub-command to return the primary thread Id for the
         library.

FEATURE: expose the Utility.FormatId method for use by applications and plugins.

FEATURE: add interactive #lfinfo command to display the local flags.  changed
         the #finfo command to display the flags passed to the interactive
         debugging session.

FEATURE: add interactive #oinfo command to display detailed information about
         the specified object.  also, add WriteObjectInfo methods to the
         IInformationHost interface.

FEATURE: add -index option to [object create] and [object invoke].  this option
         is used to select a method index from the list of method overloads
         matching the arguments specified in the call; otherwise, the first
         matching method overload is selected (previously, this was the only
         behavior possible).

FEATURE: add Culture to the [info engine] sub-command to query the culture for
         the assembly, if any.

FEATURE: add -noStatistics option to [test2] to prevent any test statistics for
         the interpreter from being modified.

FEATURE: new -version command line option and #version interactive command to
         display detailed version information.

************************* Beta 1.0.4031.13865 RELEASE *************************

BUGFIX: modify the source arhiving tool to exclude the redundant web service
        configuration file created during the build process.

BUGFIX: modify the release preparation tool to enable isolated interpreters by
        default in the appropriate build configurations.

BUGFIX: report the correct result from the [host reset] sub-command.

REFACTOR: add ResetFlags method to the IHost interface.

REFACTOR: *BREAKING CHANGE* rename the STRICT_VERBS compile-time option to
          APPROVED_VERBS.  also, enable it by default and make it easy to change
          via the MSBuild command line using the EagleApprovedVerbs property,
          see CodePlex bug #8009.

REFACTOR: *BREAKING CHANGE* modify the IInterpreter and IScriptBinder interfaces
          to expose their binder members as IBinder interfaces instead of using
          the Binder abstract type.

FEATURE: add -flags option to the [host reset] sub-command.

************************* Beta 1.0.4010.41132 RELEASE *************************

BUGFIX: skip trying to normalize the file name returned by [info script] if it
        is a remote URI.

BUGFIX: make sure the updater avoids file locking issues when trying to update
        itself.

BUGFIX: use correct default regular expression options for [test1] and [test2].

BUGFIX: the AttributeFlags.Have method should match any of the specified flags
        when the have-all option is false.  also, modify the behavior slightly
        for invalid flag characters when the new strict option is true.

BUGFIX: the [object interfaces] and [object namespaces] sub-commands should make
        sure their respective data is actually available before attempting to
        use it.

BUGFIX: test excel-2.2 should cleanup after itself even after failing.

BUGFIX: unload the previously loaded native module, if any, when Resolve method
        of the NativeDelegate class is called.  also, miscellaneous cleanup to
        several methods of this class.  revise and enhance the library-1.* tests
        to check for this behavior.

BUGFIX: add missing directories to the clean tool.

BUGFIX: the DelegateDictionary, EnumDictionary, and ExecuteCallbackDictionary
        classes should be serializable.

BUGFIX: *BREAKING CHANGE* the DecimalDictionary, DoubleDictionary, and
        SingleDictionary classes should not be public.  also, these classes
        should be serializable.

BUGFIX: *BREAKING CHANGE* the Script class now derives from MarshalByRefObject;
        otherwise, isolated script policies cannot work correctly.

REFACTOR: the IsNowClean and IsNowDirty methods of the Variable class should be
          static.  the GetHostColors method of the Interpreter class should also
          be static.

REFACTOR: change the default command history display limit from 3 to 20.

REFACTOR: move static AppDomain management methods from the Interpreter class to
          the RuntimeOps class.

REFACTOR: revise internal handling for the ObjectInterfaces and ObjectNamespaces
          properties of the Interpreter class.

REFACTOR: revise ScriptBinder workaround for redundant type conversion requests
          when running on Mono (Mono bug #471359).

REFACTOR: centralize the default regular expression options for [regexp],
          [regsub], [test1], and [test2].

REFACTOR: for the updater, improve handling of the WhatIf option.  also, enable
          the WhatIf option automatically when running under a debugger.

REFACTOR: revise the [tcl] usage example script in the Example project to use
          [vwait] instead of [update].  also, cancel any pending events when
          exiting.

REFACTOR: revise error message for [after cancel].

REFACTOR: support non-default build types in the updater.

REFACTOR: add an event notification for objects disposed via the RemoveObject
          methods of the Interpreter class.

REFACTOR: revise how COM objects that implement multiple interfaces are handled
          by the core marshaller.

REFACTOR: rename various private container classes, including all the classes
          that derive from the WrapperDictionary class.

REFACTOR: *BREAKING CHANGE* rename the public classes StringEnumDictionary,
          StringIntDictionary, StringLongDictionary, and StringObjectDictionary
          to remove the word String.

REFACTOR: *BREAKING CHANGE* include the assembly text attribute value in the
          result of [version].

REFACTOR: *BREAKING CHANGE* revise the results of the [object interfaces] and
          [object namespaces] sub-commands to be name/value pairs (the value
          being the name of the logical container, which is typically the name
          of the containing assembly).  also, add -bycontainer option to both
          sub-commands to restrict the matches based on the logical container
          name.

REFACTOR: *BREAKING CHANGE* replace the -isolated option of [test2] with the new
          -isolationLevel option.  see the IsolationLevel enumeration for a list
          of supported values.

FEATURE: support creation of interpreters in isolated application domains via
         the new InterpreterHelper class.  the test xaml-1.2 exercises this new
         functionality.

FEATURE: add the -container option to [object import] to specify the logical
         container name (e.g. the name of the containing assembly) for any
         manually imported namespaces.

FEATURE: add [object type], [object types], and [object untype] sub-commands to
         manage type name lookups.  the [object type] sub-command can be used to
         associate an arbitrary string with a type name.  the [object types]
         sub-command returns the list of type name associations.

FEATURE: add the ExecutionPolicy enumeration for use by external file and script
         policies.

FEATURE: expose the IsSoftwareUpdateTrusted and SetSoftwareUpdateTrusted methods
         to external applications and plugins via the Utility class.  also, add
         verbose diagnostic output to the IsSoftwareUpdateCertificate and
         SetSoftwareUpdateTrusted methods.

FEATURE: add Text to the [info engine] sub-command to query the arbitrary text
         embedded within the assembly at compile-time, if any.

************************* Beta 1.0.3993.40193 RELEASE *************************

BUGFIX: inside the interactive loop, re-check the exit flag for the interpreter
        after read a line of input just in case another thread modified it (i.e.
        do not try to process a command, interactive or otherwise, for an
        interpreter that should no longer be used).

BUGFIX: make sure the test suite can run successfully on a secondary thread.
        also, make sure all created threads that need a user-interface are
        created as single-threaded apartments.

BUGFIX: make sure that opaque object handle names are not looked up more than
        once per value during method overload resolution.

BUGFIX: the ChangeType method of the ScriptBinder should check for redundant
        type conversion requests and simply ignore them when running on Mono
        (Mono bug #471359).

BUGFIX: properly dispose of HashAlgorithm objects used by the [hash] command.

BUGFIX: make sure the ReturnCodeMessages property of the TestContext class gets
        initialized for each thread in use.

BUGFIX: the [exit] command should dispose of the active interpreter when the
        -force option is used.

BUGFIX: avoid throwing ObjectDisposedException from inside the Dispose method of
        the Interpreter class (ContextManager).

BUGFIX: fix incorrect usage of the Interpreter.Interactive property by the form
        in the EagleTest project.

BUGFIX: when using [after] to sleep, an empty result must be returned.

BUGFIX: fix some MarshalByRefObject-related issues with the Interpreter class.
        also, make the FixupReturnValue method work properly in an isolated
        AppDomain.

BUGFIX: the CommandCallback class should not dispose thread-specific interpreter
        state when running on the primary thread.

BUGFIX: the encodings provided by the core library should be serializable.

BUGFIX: the FixupReturnValue method should not attempt to dispose objects when
        it has been forbidden from doing so via the NoDispose flag.

BUGFIX: the ObjectTraceCallback method should not attempt to decrement any
        reference counts for old opaque object handle names contained within
        undefined variables.

BUGFIX: single-element lists should be shimmered when [expr] needs to interpret
        an argument as a numeric value.

BUGFIX: only cache StringList, ParseState, and ExpressionState objects below an
        acceptable size threshold.

BUGFIX: catch and report failures of the IInformationHost methods initiated by
        interactive commands.  also, make the host feature error messages more
        consistent.

BUGFIX: make sure that [after] does not return immediately for small wait times.

BUGFIX: all [package ifneeded] scripts must be evaluated in the global scope.

BUGFIX: terminate packages instead of simply clearing them (i.e. they are not
        necessarily simply data objects).

BUGFIX: fix the ObjectFlags checking in overloads of the Interpreter.GetObject
        method that accept an object value and return the associated opaque
        object handle name and IObject.

REFACTOR: correct the handling of script cancellation notifications in the
          EagleTest project (i.e. restart processing of asynchronous events
          after the script cancellation has been processed).  also, modify the
          user-interface to work on screens with less vertical space.

REFACTOR: add overload of the QueueEvent method that provides access to the
          created IEvent objects to the IEventManager interface.  add similar
          overloads of the QueueScript method for both the IEventManager and
          IInterpreter interfaces.  also, change the minimum wait time for the
          EventManager class to 50 milliseconds.

REFACTOR: mark all commands in the core command set with the Core command flag.

REFACTOR: when the target .NET Framework property has been forced to version 2,
          define the NET_20_ONLY compile-time option.

REFACTOR: reduce the use of the interpreter lock by the engine.  also, revise
          the use of the interpreter engine flags by the engine.  all the stack
          checking and error handling related engine flags are now handled on a
          per-thread basis when the THREADING compile-time option is enabled.

REFACTOR: cleanup and move core package handling from the _Packages.Default
          class to the _Packages.Core class.  also, in the Interpreter class,
          cleanup and limit the places that access the private collection of
          packages directly.

REFACTOR: slightly revise handling of the binary and package paths in the test
          suite.  also, detect and test isolated plugin support.

REFACTOR: add overloads of the Substitute* methods that accept a substitution
          flags argument to the Interpreter class.

REFACTOR: allow use of the [exit] command by "safe" interpreters; however, the
          -force and -fail options are disallowed.

REFACTOR: modify the handling of variable traces and event notifications.  there
          are now separate flags to disable tracing and/or event notifications
          on a per-variable or per-call basis.

REFACTOR: make sure that none of the supporting code for isolated plugins gets
          compiled unless the ISOLATED_PLUGINS compile-time option is enabled.

REFACTOR: fix performance issue in the list element building algorithm.

REFACTOR: the WiX extension now uses the Evaluate* and Substitute* methods
          provided by the Interpreter class.

REFACTOR: prevent global event notifications for active-interpreter related
          events from being compiled into the library unless the NOTIFY,
          NOTIFY_GLOBAL, and NOTIFY_ACTIVE options are enabled at compile-time.

REFACTOR: add simpler overload of GlobalState.GetPackageName and cleanup usage.

REFACTOR: make [test2] usage of the OptionFlags.NoCase flag consistent.

REFACTOR: cleanup usage of all serialization related attributes (i.e. only use
          them when the SERIALIZATION compile-time option is enabled).

REFACTOR: cleanup test suite usage of the [after flags] sub-command.

REFACTOR: modify the package output path to include the package version, if any.

REFACTOR: revise handling of interactive loop input that consists entirely of
          whitespace.

REFACTOR: make the GetAny method of the Interpreter class check the active
          interpreter for the thread first.  also, promote it to public.

REFACTOR: modify the Argument and Result classes to support implicit conversions
          from the byte and ByteList types.

REFACTOR: add support for low-priority command and variable resolvers.

REFACTOR: move the script debugger to engine context data when the THREADING
          compile-time option is enabled.

REFACTOR: add Plugin property to the private IOperatorData interface.  modify
          the AddOperator methods of the Interpreter class accordingly.

REFACTOR: remove use of new for byte and char arrays where it is not required.

REFACTOR: cleanup command line argument handling for the shell.

REFACTOR: *BREAKING CHANGE* avoid creating a TraceInfo object each time a
          variable is read, set, or unset.  there is now one TraceInfo object
          per-thread and it will be re-used as necessary.  any trace callback
          that needs to evaluate scripts or access [other] variables MUST now
          save and restore the traceInfo object; otherwise, the results are
          undefined.

REFACTOR: *BREAKING CHANGE* revise handling of event notification types and
          flags to make per-thread notifications more robust.

REFACTOR: *BREAKING CHANGE* modify the EventFlags.Service flag value to exclude
          [after] events.  going forward, applications and plugins should use
          the ServiceEventFlags property of the interpreter instead of using
          constant flag values.

REFACTOR: *BREAKING CHANGE* make the event notification data for entity removal
          events more consistent (i.e. always include the entity being removed
          along with the name or token).

REFACTOR: *BREAKING CHANGE* add FunctionTokens property to the IFunctionData
          interface.  also, keep the list of function tokens updated when a
          function is added or removed.

REFACTOR: *BREAKING CHANGE* add Plugin property to the IFunctionData interface.
          modify the AddFunction methods of the Interpreter class accordingly.

REFACTOR: *BREAKING CHANGE* rename the SetupCallback method of the IPolicy
          interface to Setup and move it to a new interface named ISetup.

REFACTOR: *BREAKING CHANGE* revise termination semantics for all entities that
          implement the IState interface.  if a call to the Initialize method
          fails, the Terminate will now be called.

REFACTOR: *BREAKING CHANGE* procedures no longer support state management via
          the IState interface.  this feature was never fully implemented and
          should not be necessary.

REFACTOR: *BREAKING CHANGE* completely revise entity management for traces.
          this is a necessary prerequisite to allowing isolated plugins to
          contain and manage traces.  all methods of the Interpreter class that
          took a TraceCallbackList now take a TraceList instead.

REFACTOR: *BREAKING CHANGE* rename the -types option for [object invoke] and
          [object members] to -membertypes in order to avoid confustion.

REFACTOR: *BREAKING CHANGE* rename the RestoreCommands method of the Interpreter
          class to RestoreCorePlugin.

FEATURE: add [parse options] sub-command to expose the universal option parser
         to scripts.

FEATURE: add experimental support for using the [object] command in a "safe"
         interpreter.  for now, only the [object invoke] and [object invokeall]
         sub-commands are allowed and some of the options are unavailable or
         restricted (e.g. the member types and binding flags automatically mask
         off certain values that are not allowed).

FEATURE: add -type option to all commands and sub-commands that use the
         FixupReturnValue method.  add -returntype option to the [object invoke]
         sub-command.  this option allows the script to specify the type to be
         used as the basis for member lookups on the target object.  this option
         may be required to get the correct behavior if the object implements
         more than one interface.

FEATURE: add UpdateFile to the [info engine] sub-command to query the name of
         the remote file to fetch when checking for the latest release of the
         core library.

FEATURE: add updater project (Hippogriff) to make it easier to securely update
         an installed version of Eagle.  modify the necessary build tools to
         support this new project and its associated semantics.  add the
         necessary files to the setup.  modify the interactive #check command to
         launch the updater if the value 2 is used as the action argument.

FEATURE: add "Core" release type that includes only the core library itself.
         this release type is primarily for use by third-party applications.
         also, add "Runtime" release type that includes the minimal set of files
         required to use and maintain the core library and interactive shell.
         modify the necessary build tools to support these new release types.

FEATURE: add RemoveFunctions and RemoveTraces methods to the Interpreter class.
         also, make it possible to cleanly unload the core plugin.

FEATURE: add experimental -trace option to [object create] and [object invoke].
         currently, using this option causes debug output to be produced that
         pertains to the results of the method overload resolution engine.

FEATURE: add experimental -fast option to [object create] and [object invoke].
         currently, using this option causes all variable watches, traces, and
         notifications to be skipped for all ByRef arguments for the duration of
         the invocation.

FEATURE: add [object invokeall] sub-command to invoke multiple members of a type
         or object, in the specified order, with or without arguments.  the
         -invoke option can be used to force the current command to be treated
         as [object invoke] instead.  the -nocomplain option can be used to
         ignore all invocation errors.  the -keepresults option can be used to
         cause a list of return codes and results to be built and returned as
         the result.  if the -keepresults option is not specified, the result
         will be the literal string "Ok 0" if no errors were encountered;
         otherwise, it will be the literal string "Error #", where "#" is the
         number of errors that were encountered.

FEATURE: add -objectname option to [object invoke] (and friends).  if specified,
         this will override the (normally automatically assigned) name for the
         opaque object handle.

FEATURE: add -type option to [object invoke] to specify the type to be used as
         the basis for member lookup.  if specified, this type will override the
         type of the object being used.

FEATURE: add -aliasall option to [object invoke].  when used in combination with
         the -alias option, any created command aliases will refer to the
         [object invokeall] sub-command (i.e. instead of [object invoke]).

FEATURE: add -invokeall option to [object invoke] to force the current command
         to be treated as [object invokeall] instead.

FEATURE: add prototype add-in project for MonoDevelop.  at this point, it is a
         very rough proof-of-concept and will not be included with the official
         source code.

FEATURE: add [host title] sub-command to get and/or set the title of the host.

FEATURE: support custom hosts, math functions, and traces in isolated plugins.

FEATURE: support unloading isolated plugins via the UnloadPlugin method of the
         Interpreter class.  also, add new overload of the UnloadPlugin method
         that takes a plugin name.

************************* Beta 1.0.3972.10358 RELEASE *************************

BUGFIX: fix value of the $eagle_platform(shellPatchLevel) variable.

REFACTOR: constrain non-performance tests requiring precise timing to run only
          when it is actually available.

REFACTOR: *BREAKING CHANGE* rename _Constants.Timeout to _Constants._Timeout in
          order to avoid a name collision with System.Threading.Timeout.

FEATURE: add NoConsole environment variable to support the ability to disable
         the console when it has been enabled by default.

FEATURE: add example of multithreaded script evaluation to the EagleTest project
         via the new [report send] command.  the -asynchronous option can be
         used when the result of the evaluation is not required.  also, the
         -timeout option can be used to specify the script completion timeout,
         in milliseconds (synchronous mode only).

************************* Beta 1.0.3971.24908 RELEASE *************************

BUGFIX: fix [info level], etc (i.e. call frame visibility management) when the
        EvaluateGlobal engine flag is used (e.g. by the [after] command).

BUGFIX: fix stack size not being set properly on released binaries by forcing
        the .NET Framework 3.5 / Visual Studio 2008 binaries to be used when
        building via the release preparation tool.

BUGFIX: fix typo in the [interp] command class related to incorrect usage of the
        TryExecuteSubCommandFromEnsemble method.

BUGFIX: fix core marshaller handling for output parameters of enumerated types.

BUGFIX: fix typo in the [after enable] syntax error message.

BUGFIX: fix incorrect usage of the parent interpreter by several sub-commands of
        [interp].

BUGFIX: when clearing events after a test, use the isolated test interpreter,
        not the main interpreter.

BUGFIX: allow the entire eagle_tests array to be unset.

BUGFIX: make [info exists] and [array] work with the global eagle_tests array.

BUGFIX: add missing NotifyFlags.Unwound flag to the NotifyFlags.All value.  add
        missing NotifyType.XmlBlock to the NotifyType.All value.

BUGFIX: fix isolated debugger interpreters not being initialized correctly.

BUGFIX: make sure the native Tcl integration tests cleanup after themselves even
        if there is a failure in the test setup script.

BUGFIX: the AddTrustedDirectories and AddTrustedUris methods of the Interpreter
        class should validate their arguments and avoid attempting to add
        duplicate entries.

BUGFIX: fix percentage faster reporting for the benchmark tests.

BUGFIX: fix [clock format -format %Z] when used with a time in UTC.

BUGFIX: fix boolean expression truth values for integer values that do not fit
        within a byte, see CodePlex bug #8141.

BUGFIX: fix [object resolve] when running on the .NET Framework 4.0 after having
        been compiled for the .NET Framework 2.0.

BUGFIX: make sure to clear the resolvers, traces, and runtime options for the
        interpreter after all the commands and plugins have been terminated.

BUGFIX: the EagleTest and EagleToolkit projects should prepare their plugins
        prior to adding them to the interpreter.

BUGFIX: the EagleTest example shell should actually do something when the Run
        button is pressed.  also, revise how the embedded script resources are
        included and used.

BUGFIX: acquire the interpreter lock prior to accessing or modifying the list of
        trusted paths.

BUGFIX: prevent any runtime option information from being leaked into "safe"
        interpreters.

BUGFIX: acquire the static lock prior to setting up the lists of "safe" variable
        names.  also, synchronize these lists with code in the SetupPlatform,
        SetupHome, and Setup methods.

BUGFIX: make the "?", "??", and "???" command line options work properly again.

BUGFIX: fix stdout/stderr output checking for the [test2] command so that a
        failure is reported if no output is produced when some is expected.

BUGFIX: prevent the clock-1.1.1 test from using the current time zone.

BUGFIX: break the infoPlugin-1.1 test into Windows and Unix variants.

BUGFIX: the addToPath script library procedure should not assume the necessary
        environment variables already exist.

BUGFIX: prevent any Windows Forms tests from running on non-Windows platforms
        unless the DISPLAY environment variable has been defined.  this is
        needed on Mono to work around an issue where it will hang when repeated
        attempts to create a form fail due to the X server being unavailable.

BUGFIX: make sure that [vwait] does not stop processing events when a background
        error is raised (COMPAT: Tcl).

BUGFIX: allow [object create] to work with non-primitive value types that have
        no constructors.

BUGFIX: if the global env or global eagle_tests array is unset, be sure to clear
        any pending waits on them.

BUGFIX: in the engine, do not assume that Environment.NewLine is a cr/lf pair.
        special thanks to Stuart Cassoff for helping me track this down.

BUGFIX: correct all the remaining MarshalByRefObject-related warnings when the
        ISOLATED_PLUGINS compile-time option is enabled.

BUGFIX: make the Compare, Equals, and GetHashCode methods of the _Comparers.Pair
        class more robust (i.e. properly check for null objects).

BUGFIX: prevent an active Debugger object from being disposed from scripts.

BUGFIX: the active interpreters need to be kept track of on a per-thread basis.

REFACTOR: prevent global event notifications (and the supporting methods) from
          being compiled into the library unless the NOTIFY and NOTIFY_GLOBAL
          options are enabled at compile-time.

REFACTOR: do not send global notifications to "safe" interpreters.

REFACTOR: remove unnecessary direct field access for the various flags fields of
          the Interpreter class (e.g. createFlags, engineFlags, etc).  also,
          cleanup the remaining direct field access for all the flags fields.

REFACTOR: remove all unnecessary inheritance from and use of the IGetInterpreter
          and IHaveInterpreter interfaces (e.g. ICallback, IParseState, IScript,
          etc).

REFACTOR: have the debug-5.* tests use the host width for the length of text to
          write.

REFACTOR: cleanup usage of threads by the test suite.

REFACTOR: cleanup usage of [catch] by the test suite.

REFACTOR: cleanup implementation and usage of the TryDisposeObject method.

REFACTOR: move all event management from the Interpreter class to the new
          EventManager class.

REFACTOR: move all context management from the Interpreter class to the new
          ContextManager class.  also, revise the related disposal semantics.

REFACTOR: use static factory methods for all the common cases of call frame
          creation.

REFACTOR: the Pair and Triplet container classes now derive from the AnyPair and
          AnyTriplet generic classes, respectively.

REFACTOR: cleanup use of internal method visibility by internal classes.

REFACTOR: revise the object group assignments for the branching, looping and
          script environment related commands.

REFACTOR: make the internal processing of unknown options more flexible, based
          on flags specified by the caller.

REFACTOR: the #ainfo interactive command can now be used even when no argument
          list is available.

REFACTOR: cleanup the getCompileInfo and getPlatformInfo procedures in the
          script library.

REFACTOR: revise the opaque object handle names for client and server sockets.

REFACTOR: add the ApplicationObject and UserObject properties to the interpreter
          display of the default host.

REFACTOR: add the ScriptDecision, PolicyTrace, and TrustedPaths properties to
          the engine display of the default host.

REFACTOR: tighten up all the performance tests based on the measured relative
          performance of the machine they are being executed on.

REFACTOR: add new MethodFlag and PolicyFlag values to support the declaration
          and use of sub-command policies.

REFACTOR: add IHaveInterpreter interface to simplify using the IGetInterpreter
          and ISetInterpreter interfaces on the same class.

REFACTOR: by default, enable use of the CacheDictionary class for the internal
          caches.

REFACTOR: rename the methods in the ConsoleOps class to remove redundant use of
          the word Console.

REFACTOR: modify how XML script block loading is handled, allowing script block
          policies to check each one as it is being loaded.  add ScriptDecision
          property to the IInterpreter interface, representing the default
          policy decision for script blocks.

REFACTOR: cleanup naming for some local DateTime and ObjectList variables.

REFACTOR: revise handling of the operating system and CLR versions.

REFACTOR: carefully rework internals of the [vwait] command to be slightly more
          precise and far less processor intensive.

REFACTOR: *BREAKING CHANGE* remove the obsolete commands [getf], [setf], and
          [unsetf].  if you require these commands, they may be restored via the
          OBSOLETE compile-time option.

REFACTOR: *BREAKING CHANGE* it is time for a huge cleanup of the Interpreter
          class.  move almost all logically-global static read-only and
          read-write data to the new GlobalState class, including all cached
          assembly metadata, all package data, and all path data.  move almost
          all static methods from the Interpreter class to various internal
          helper classes, including: AssemblyOps, AttributeOps, CallFrameOps,
          CertificateOps, EntityOps, FlagOps, GlobalState, HelpOps, RuntimeOps,
          TestOps, ThreadOps (almost all of these classes are new).  the biggest
          external breaking change is the removal of all static utility methods
          from the Interpreter class [to the Utility class], including:
          BadSubCommand, BadValue, BuildCommandLine, CustomErrorCode,
          CustomOkCode, DetectLibraryPath, ExceptionExitCode,
          ExitCodeToReturnCode, ExtractPolicyContextAndCommand,
          ExtractPolicyContextAndFileName, ExtractPolicyContextAndScript,
          FailureExitCode, FormatResult (all overloads), GetAssemblyCertificate,
          GetAssemblyUri, GetBinaryPath, GetCommandFlags (all overloads),
          GetEnvironmentVariable, GetNotifyFlags, GetNotifyTypes, GetObjectId
          (all overloads), GetPackageName, GetPackagePath, GetPluginFlags (all
          overloads), HasFlags (all overloads), IsSuccess, PrepareStaticPlugin,
          ReturnCodeToExitCode, SetBasePath, SetLibraryPath, SuccessExitCode,
          TryExecuteSubCommandFromEnsemble, and WrongNumberOfArguments.  also,
          move the static LooksLikeOption and EndOfOptions members to the Option
          class.  make the HasCancelThread, InterruptCancelThread, and
          StartCancelThread methods private.  remove the GetParentInterpreter
          and NextGlobalId methods.  remove the AllInterpreters property.

REFACTOR: *BREAKING CHANGE* all methods of the Engine class that accept flag
          arguments now require an EventFlags argument.  authors of applications
          and plugins are now officially encouraged to use the non-static
          Evaluate* and Substitute* methods of the Interpreter class whenever
          possible, instead of using the Engine class directly.  add overloads
          for the Evaluate* and Substitute* methods to the IInterpreter
          interface to help support this.  all code in the Eagle core library
          now conforms to this convention.

REFACTOR: *BREAKING CHANGE* make the Engine.CheckEvents method private.

REFACTOR: *BREAKING CHANGE* rename the [object import -package] option to
          -assembly.

REFACTOR: *BREAKING CHANGE* rename various flags in the CreateFlags enumeration
          to be more consistent.  also, the Debug flag now means something
          totally different than before.  the Debugger flag should now be used
          where the Debug flag was used before.

REFACTOR: *BREAKING CHANGE* spell out the names of the evaluate, postInitialize,
          preInitialize, pluginTest, and testDirectory command line options.  to
          minimize the impact of this change, prefix matching is now enabled for
          all command line options.

REFACTOR: *BREAKING CHANGE* move the Token property of the IWrapper interface to
          a new interface named IWrapperData.  all classes with associated
          wrapper classes [and their associated data passing interfaces/classes]
          must now implement the IWrapperData interface.

REFACTOR: *BREAKING CHANGE* all entities with an associated wrapper class will
          now use the new WrapperDictionary class as the base class for their
          associated dictionary classes.  this allows for O(1) hash lookups
          based on the name or token.  make the Get*, Add*, and Remove* entity
          management methods of the IInterpreter interface consistent, primarily
          by reordering their parameters and/or adding missing overloads.

REFACTOR: *BREAKING CHANGE* add new overloads of the HasChangeTypeCallback,
          HasToStringCallback, and ChangeType methods to the IScriptBinder
          interface.  move all the type conversion logic into the new overload
          of the ChangeType method and have all the other methods that require
          type conversions call it.  add DoesMatchType method and Debug property
          to the IScriptBinder interface.

REFACTOR: *BREAKING CHANGE* modify the Utility.ThrowFeatureNotSupported method
          to check the new Interpreter.ThrowFeatureNotSupported property before
          throwing an exception.

REFACTOR: *BREAKING CHANGE* modify the [interp policy] sub-command to specify
          the target command via new -type or -token options instead of a type
          formal argument.  add tests for [interp policy] and [interp nopolicy].
          this functionality is now officially supported.

REFACTOR: *BREAKING CHANGE* completely revise entity management for policies.
          this is a necessary prerequisite to allowing isolated plugins to
          contain and manage policies.  all public policy helper methods now
          accept a command token in addition to a command type to allow for
          faster lookups of the command to match against.

REFACTOR: *BREAKING CHANGE* rename PolicyData to PolicyContext, everywhere.

REFACTOR: *BREAKING CHANGE* add a volatile Plugin property to the IPolicyContext
          interface.  the value of this property will always be the plugin of
          the policy currently being invoked, if any (i.e. it may be null).

REFACTOR: *BREAKING CHANGE* the PolicyContext class now derives from the
          ScriptMarshalByRefObject class.

REFACTOR: *BREAKING CHANGE* the default wrapper class now derives from the
          ScriptMarshalByRefObject class.

REFACTOR: *BREAKING CHANGE* when using an embedded script library, set the
          tcl_library variable to the path and file name of the Eagle core
          library assembly.

REFACTOR: *BREAKING CHANGE* make sure that the breakpoint name is passed to the
          WriteArgumentInfo, WriteHeader, and WriteFooter methods of the
          IInformationHost interface.

REFACTOR: *BREAKING CHANGE* make the [time] command with an iteration count of
          negative one evaluate the script forever (i.e. until canceled).

REFACTOR: *BREAKING CHANGE* the default operator when parsing enumerated flag
          values is now ":" (set/add) instead of "+" (add).

REFACTOR: *BREAKING CHANGE* for consistency, rename the CompareSystemString and
          CompareUserString methods of the Utility class to CompareSystemStrings
          and CompareUserStrings.

REFACTOR: *BREAKING CHANGE* prevent script blocks and files from being loaded
          using fallback semantics if they have been denied by policy.

REFACTOR: *BREAKING CHANGE* make secondary overloads of the ReadScriptFile and
          ReadScriptStream methods of the Engine class private because they now
          require special flag handling semantics.

REFACTOR: *BREAKING CHANGE* add a Script property to the IPolicyData interface
          and the PolicyData class to support script block policies.

REFACTOR: *BREAKING CHANGE* rename GetExecute method of the IResolve interface
          to GetIExecute.

REFACTOR: *BREAKING CHANGE* rename several PolicyFlags to be more consistent
          with their usage.

REFACTOR: *BREAKING CHANGE* rename #restore interactive command to #restc.

FEATURE: *BREAKING CHANGE* add [info source] sub-command to return the full path
         and file name where the specified procedure was defined.  add Location
         property to the IProcedureData interface to keep track of the script
         location where a procedure is defined.

FEATURE: support randomizing the initial values for all the integer unique
         identifiers via the RANDOMIZE_ID compile-time option.

FEATURE: support a shared pool of integer unique identifiers for interpreters
         and global objects via the SHARED_ID_POOL compile-time option.  this
         does not change the behavior of the per-interpreter (i.e. local)
         integer unique identifiers.

FEATURE: support overriding the interpreter creation flags through the use of an
         environment variable named CreateFlags.  modifications from this new
         environment variable are applied to the interpreter creation flags
         after all other changes.

FEATURE: add experimental support for following variable links during [vwait].
         Tcl does not support this; therefore, this feature may be disabled by
         default in the future.

FEATURE: add #restv interactive command to restore all the built-in variables
         for the interpreter.

FEATURE: add -noEvent option to the [test2] command.  setting this option causes
         the event queue for the interpreter to be cleared after evaluating the
         setup, body, and cleanup scripts.

FEATURE: add [tsource] procedure to run an unmodified Tcl test file.  all tests
         are routed through a special shim that wraps them in the standard test
         wrapper (i.e. runTest).  various other techniques may also be used to
         bypass Tcl and/or Tcltest functionality not available in Eagle.

FEATURE: add [object hash] sub-command to return the cryptographic hashes for
         the specified assembly.

FEATURE: add PolicyTrace property to the IInterpreter interface to allow policy
         tracing to be enabled or disabled at runtime.  also, cleanup the output
         produced when this property is enabled.

FEATURE: the Console host now supports detecting if the output and/or error
         channels have been redirected.  currently, this feature is limited to
         Windows.

FEATURE: add -verify and -flags options to the [library certificate] and
         [object certificate] commands.

FEATURE: *BREAKING CHANGE* the [break] and [continue] commands can now return a
         string value (i.e. they both can now accept an optional argument, which
         is the string value to return).

************************* Beta 1.0.3936.00949 RELEASE *************************

BUGFIX: fix issue with Authenticode signatures not having the full certificate
        chain attached to them.

BUGFIX: fix race condition for the parse state and list caches.

************************* Beta 1.0.3935.30806 RELEASE *************************

BUGFIX: add missing Tcl test constraints to the benchmark-1.21 and interp-1.4
        tests.  add missing Eagle test constraint to the infoPlugin-1.1 test.

BUGFIX: skip the object-6.1 and winForms-8.1 tests when running on Mono (Mono
        bug #645189).

BUGFIX: have the [puts] command always flush the output stream when running on
        Mono (Mono bug #645193).

BUGFIX: the [getTestRunId] procedure needs to work around Mono bug #636939.

BUGFIX: disable the [file drive] command when running on Mono as it does not
        implement the DriveInfo class on Windows.

BUGFIX: correct the method visibility and IDisposable handling for the Channel
        class.

BUGFIX: when adding a procedure, if there is an existing command with the same
        name and it cannot be removed, rollback all changes to the interpreter.

BUGFIX: do not use the StringOps.TrimLeadingColons method to modify the names
        that get passed to the resolver(s).

BUGFIX: correct WiX reference assembly checking for the EagleExtensions project.

REFACTOR: avoid confusing distribution file names for the NetFx40 build
          configuration by inserting an underscore between the suffix and the
          version (i.e. to prevent the 40 portion of the suffix from being seen
          as part of the version).

REFACTOR: cleanup generation code for all the Mono test constraints.

REFACTOR: add a ScriptFlags property to the IScript interface.

FEATURE: add EvaluateScript method overloads that take an IScript object to the
         IInterpreter interface.

FEATURE: add [package loaded] sub-command to return the list of packages that
         have actually been loaded into the interpreter.

FEATURE: allow the [file system] sub-command to be used without any arguments.

************************* Beta 1.0.3933.37600 RELEASE *************************

BUGFIX: make sure that all methods of the Engine and Interpreter classes that
        call into optional host methods do not allow exceptions to escape.

BUGFIX: If an Interpreter is being explicitly disposed, make sure the Tcl module
        handle is freed instead of just disposing of the Tcl API object.

BUGFIX: fix [concat] when one or more arguments consist entirely of whitespace.

BUGFIX: report errors raised by the script code in-between the tests themselves
        when sourcing a test file.  also, make sure the error message is not
        obscured by test suite output.

BUGFIX: fix incorrect usage of command arguments by [interp exists].

BUGFIX: the TryGetKeyAtIndex and TryGetValueAtIndex methods must return true
        upon success.

BUGFIX: the TclWrapper.EvaluateExpression method was not using the locally
        (cached) copy of the Tcl_Preserve delegate.

BUGFIX: the Event class needs to support the IDisposable interface so that the
        wait handle it contains can be properly closed.

BUGFIX: when compiled without Tcl threads support enabled, the universal option
        parser should use the GetTclInterpreter method.  also, the
        GetTclInterpreterOrThread method should check to make sure that the Tcl
        thread dictionary is available prioring to accessing it.

BUGFIX: the PluginLoadHelper should not accept/expose the evidence, hashValue,
        or hashAlgorithm fields unless the CAS_POLICY option is enabled at
        compile-time.

BUGFIX: remove the unused local variable previousIndex from the Parser.SplitList
        method.

BUGFIX: skip building the WiX extension if the necessary SDK assembly is not
        available.

BUGFIX: remove incorrect usage of the Interpreter.ResolveProcedure methods.

BUGFIX: cleanup and refactor the [uri softwareupdates] sub-command and make it
        work properly on Mono.

BUGFIX: make the result of the [info library] sub-command compatible with Tcl
        when the script library path is not valid, including "safe" interpreters
        (COMPAT: Tcl).

BUGFIX: remove all "unsafe" procedures and variables when an interpreter is made
        "safe".  pursuant to this, a "safe" interpreter initialization script
        was added to the core script library.  also, this makes the errors
        returned by [package require] in a "safe" interpreter more compatible
        with Tcl (COMPAT: Tcl).

BUGFIX: fix incorrect usage of the Result.op_Implicit method by various tests.

BUGFIX: make sure the VariableFlags.NoElement flag is used in all applicable
        calls to the GetVariableViaResolvers method.

BUGFIX: make sure the #vinfo interactive command works when debugging a script
        that has been canceled.

BUGFIX: make sure the variable name arguments for the [array] sub-commands do
        not refer to array elements or aliases to array elements.

BUGFIX: fix some incorrect error messages generated by the core marshaller when
        an incorrect number of arguments is supplied for a method.

BUGFIX: file name comparisons should be case-sensitive when running on Unix.

BUGFIX: make sure the CAS_POLICY compile-time option is enabled when using
        framework method overloads that require Evidence and related parameter
        types.

BUGFIX: only "safe" child interpreters may be created in a "safe" interpreter.

BUGFIX: clear the IExecute cache during global namespace deletion.

BUGFIX: fix incorrect use of createFlags field in the Interpreter.Setup method.

BUGFIX: prevent excess notifications by resetting the cancel flag for the
        interpreter only if it was actually set.

BUGFIX: mask off inappropriate bits in the CreateFlags for isolated debugger
        interpreters created by the engine when a debugger is not attached to
        the parent interpreter.

BUGFIX: attempt to report any failures of the libdl_close native method in
        NativeOps.UnixInitializeDynamicLoading.

BUGFIX: abstract classes should not have public constructors.

BUGFIX: assemblies containing ResX-based resources should be marked with the
        NeutralResourcesLanguage assembly attribute.

BUGFIX: modify all methods that lookup a custom attribute based on a Type object
        to accept a MemberInfo object instead.  modify the methods of the
        License class to accept an IInteractiveHost object instead of an IHost
        object.  modify the Interpreter.BadSubCommand method to accept an
        IEnsemble object instead of an ICommand object.

BUGFIX: make the CreateAppDomain, CreateAppDomainSetup, FireTraces,
        FixIntermediatePrecision, GetAliasCommand, GetObjectAliasArguments,
        GetVariableFlags, HasEnvironmentTraceCallback, HasFlags(ConsoleChannel),
        InternalGetToken, SetupHome, and UnloadAppDomain methods of the
        Interpreter class static.  make the _Hosts.Default.GetWrappedObjectType
        method static.  make the StringDictionaryComparer.GetChar method static.

BUGFIX: when comparing Uri objects, always use OrdinalIgnoreCase.

BUGFIX: always use the ToLowerInvariant method when building alias arguments in
        GetObjectAliasArguments and GetTclAliasArguments.

BUGFIX: *TODO* the PluginPropertyHelper class should be marked as serializable.
        for now, mark the interpreter fields of the AliasData, HostData, and
        ResolveData classes as not serializable.  this may change again if the
        Interpreter ends up deriving from the ScriptMarshalByRefObject class.

BUGFIX: in the ChannelStream class, do not try to dispose the contained stream
        when being called by the finalizer.

BUGFIX: make sure to use the BY_HANDLE_FILE_INFORMATION structure in a way that
        is portable to x64.

BUGFIX: fix using large values for arguments of type UInt16 or UInt32 with the
        core marshaller.  an error would would be generated if the value for a
        UInt16 or UInt32 was larger than would fit into a Int16 or Int32,
        respectively.

BUGFIX: make sure that BestFitMapping is disabled and ThrowOnUnmappableChar is
        enabled for all native methods that may end up receiving ANSI string
        parameters.

BUGFIX: the [string format] sub-command should accept opaque object handle names
        as arguments.

BUGFIX: the ScriptException class needs to implement the GetObjectData method to
        support proper serialization.

BUGFIX: apparently, the ScriptMarshalByRefObject class needs a LinkDemand for
        the Infrastructure permission because MarshalByRefObject has one.

BUGFIX: take the culture for the interpreter into account when resolving nested
        object and member names.

BUGFIX: remove the finalizers from classes deriving from a class that implements
        the IDisposable interface (e.g. the default host class).  the finalizer
        of the base class must call the virtual Dispose method when the object
        is being finalized.

BUGFIX: all the managed resources contained within the _Hosts.Diagnostic and
        _Tests.Default classes must be disposed of properly.

BUGFIX: enforce the leading switch character for command line options.

BUGFIX: fix GCHandle leak when explicitly disposing of a TclApi object.  fix
        another GCHandle leak when a TclApi object is being cleaned up via
        Tcl_Finalize, Tcl_Exit, or Tcl the [exit] command.

BUGFIX: force deletion of the Tcl command token for a TclBridge object when it
        has no activations, even if the Tcl interpreter itself is active.

BUGFIX: make sure the TclWrapper.Unload method properly finalizes and unloads
        the Tcl library even when multiple Eagle interpreters load it.  also, do
        not attempt to finalize or unload the Tcl library when being invoked via
        Tcl_Finalize, Tcl_Exit, or the Tcl [exit] command.  finally, handle the
        corner case of Tcl_Finalize only (i.e. no exit) in test library-3.2 by
        adding special support for setting the Tcl API object unload flags via
        script.  this corner case should never really be seen outside the test
        suite; therefore, modification of the Tcl API object unload flags by any
        code other than the test suite is officially unsupported.

BUGFIX: do not try to setup our Tcl exit handler before the Tcl_FindExecutable
        delegate has been called.  also, try to delete the Tcl exit handler only
        if it has been created.

BUGFIX: prevent the test suite from running if the current level is not global.

BUGFIX: free the correct GCHandle in the TclThread.QueueEventGeneric method.

BUGFIX: avoid using the Environment.FailFast method on Mono.

BUGFIX: the null host should clone itself using all the properties it received
        via its constructor.

BUGFIX: correct inconsistent result handling in the Interpreter.ProcessEvents
        method.

BUGFIX: test object-4.7 should not hard-code the name of the running executable.

BUGFIX: the [parse] command should use TryParseFlagsEnum, not TryParseEnum.

BUGFIX: the Interpreter.Invoke method should use the Engine.Execute method,
        which is designed for external callers.

BUGFIX: the HasRuntimeOption, AddRuntimeOption, RemoveRuntimeOption, GetScript,
        and AddScriptPolicy methods of the Interpreter class need to call
        CheckDisposed.  also, the AddRuntimeOption and RemoveRuntimeOption
        methods need to make sure the interpreter is not read-only.

BUGFIX: make sure that Tcl can only be loaded or unloaded on the primary thread
        of the Interpreter (i.e. using the LoadTcl and UnloadTcl methods).

BUGFIX: for methods taking a variable number of arguments (i.e. params) and that
        are not expected to throw exceptions, make sure the parameter array is
        not null.

BUGFIX: make sure [file system] uses the fully normalized path (i.e. the command
        "file system ../" should work correctly).

BUGFIX: add active interpreter push/pop handling to the Engine.Execute method so
        that its callers do not have to do it.  also, fix handling of the active
        interpreter stack by the [regsub] command (i.e. it was using the more
        verbose push/pop overloads, which should no longer be required).

BUGFIX: fix incorrect use of the strict flag to the SubCommandFromEnsemble
        method by the [encoding], [hash], [host], [scope], [uri], and [xml]
        commands.

BUGFIX: the PathOps.GetBasePath method should use the correct comparison type
        for the platform.

REFACTOR: revise handling of clientData in the engine command dispatcher.  it
          will now prefer to use the clientData provided by the caller if it is
          not null; otherwise, it will use clientData for the command.

REFACTOR: update Fossil tool w/source to latest release version 20101005035549.

REFACTOR: cleanup and update the included BinaryEditor build tool.  add more
          troubleshooting support to all the build tools.

REFACTOR: when compiling for the .NET Framework 4.0, prevent DebugOps.Complain
          from calling IDebugHost.WriteErrorLine because it can cause an
          otherwise healthy build process to fail due to how MSBuild handles
          output to the standard error stream during the Exec build task.

REFACTOR: revise and cleanup handling of WriteDebug* and WriteError* methods on
          the IDebugHost interface.  centralize the core Write* semantics and
          make them more uniform and fault tolerant.

REFACTOR: modify the Tcl library search semantics to include directories and
          environment variables used for Eagle-specific native Tcl libraries.

REFACTOR: modify the engine to support execution of sub-commands.  currently,
          none of the commands in the core command set make use of this feature;
          however, applications and plugins are encouraged to make use of it.

REFACTOR: add fields and properties to the interpreter display of the default
          host, including: afterEventFlags, AllXml, BackgroundError, Binder,
          CultureInfo, parentInterpreter, PackageUnknown, processEvents,
          serverSockets, childName, Unknown, and ValidateXml.

REFACTOR: implement save/restore semantics for the console title.  this can be
          disabled by using the NoTitle host property or environment variable.

REFACTOR: the [namespace unknown] command and the engine should use the Unknown
          property, not the unknown field.

REFACTOR: add policy flags to the IPolicyData and IScriptPolicy interfaces.
          modify the script policy handling to be capable of (optionally) adding
          the arguments of the command being invoked in the target interpreter
          to the policy script prior to evaluation.

REFACTOR: change the formal type of the Interpreter.ExitCode property to the
          ExitCode enumeration.

REFACTOR: by default, we no longer directly expose the Tcl wrapper and related
          functionality.  the Interpreter class now provides all the necessary
          integration functionality, please see the included TclSample project
          for details.

REFACTOR: rename the IPluginData.Tokens property to IPluginData.CommandTokens.

REFACTOR: the WriteArgumentInfo method should output the code and result to be
          useful for breakpoints.

REFACTOR: all [open] and [source] calls that require a stream are now handled by
          the IHost.GetStream method.  also, the default channel buffer size is
          now 4K.

REFACTOR: make naming of the private Interpreter and Engine methods more
          self-explanatory and more consistent.  all methods named Private* are
          only for use by the Interpreter and Engine classes, respectively.

REFACTOR: move the command count code to a new method, Engine.UpdateStatistics.

REFACTOR: revise the semantics used by the script engine for getting a script
          file from the interpreter host.  move the code to a new method named
          GetScriptFile.

REFACTOR: use a more flexible and robust method of querying the IHost properties
          in the WriteHostInfo method of the default host.

REFACTOR: make the SavePosition and RestorePosition methods of the default host
          work correctly even if the host does not support positioning.

REFACTOR: prevent the Interpreter class from assuming that the IHost has color
          support.

REFACTOR: move the public environment variable support methods to the Utility
          class.

REFACTOR: move the SubstitutionFlags checking methods to the Parser class.

REFACTOR: attempt to prompt the user prior to canceling a runaway script in the
          interactive shell.

REFACTOR: modify the Argument and Result classes to support implicit conversions
          from the Enum, Exception, Version, ResultList, and StringBuilder
          classes.

REFACTOR: support keeping track of basic usage statistics about the internal
          caches.

REFACTOR: review and revise all the custom GetHashCode implementations.

REFACTOR: modify the semantics of the Interpreter.GetExecuteViaResolvers and
          Interpreter.GetVariableViaResolvers methods to allow for simplified
          errors and/or subsequent resolvers to be skipped through the use of
          the standard exceptional return codes (i.e. the Return, Break, and
          Continue values).  currently, the default resolver never uses these
          return codes.

REFACTOR: eliminate all the unnecessary uses of both the Array.GetLength and
          Array.GetLowerBound methods.  remove superfluous array rank checking.
          arrays declared as one-dimensional at compile-time do not need their
          ranks checked at runtime.

REFACTOR: modularize the logic for querying the active script file name and move
          it from [info script] to the Interpreter.GetScriptFileName method.

REFACTOR: centralize the default match modes for all StringOps.Match calls.

REFACTOR: cleanup custom comparer implementations to make them more robust and
          uniform.  also, add new custom comparer implementation that wraps the
          StringOps.Match method.

REFACTOR: make the names of the console color settings more consistent with the
          naming scheme of the related methods.

REFACTOR: revise handling of the header flags by the interactive loop.  now, the
          interpreter header flags are never automatically modified.  they are
          copied upon entry to local header flags for use by the interactive
          loop.

REFACTOR: add public APIs for managing a Tcl library using an Eagle interpreter.
          These changes remove the need for external projects to rely on the
          private classes supplied by the TCL_WRAPPER compile-time option.
          also, modified the TclSample project to use only the newly provided
          public APIs for Tcl library management.

REFACTOR: cleanup, modularize, and reorganize the DebugOps class to make it more
          flexible and robust.

REFACTOR: use [object invoke] for [parray] to work around Mono bug #636939.

REFACTOR: some bulk cleanup of dead code.

REFACTOR: the [object dispose] sub-command now accepts a variable number of
          objects to dispose.  in addition, a -nocomplain option has been added.

REFACTOR: the core host now supports multiple profiles.

REFACTOR: modularize the KeysAndValues method used by various custom containers
          and make it totally generic and general purpose.

REFACTOR: move the zero argument overload of the ToList method from the IToken
          interface to the IScriptLocation interface.  it is now common to both
          interfaces and needs to be defined at the lowest level.

REFACTOR: move all methods common to the StringList and StringPairList custom
          containers into their own interface, IStringList.  add new method
          implementations when necessary to achieve feature parity between these
          two classes.  add implicit conversions from StringPairList to Argument
          and Result objects.  modify most callers of the StringList.MakeList
          method to use new overloads that take objects instead of strings to
          reduce the necessity of explicit ToString calls.

REFACTOR: *PERF* targeted expression performance optimizations.  cache the
          current thread Id on a per-thread basis in thread static data to avoid
          permission demands.  when compiled for the .NET Framework 4.0, cache
          the Enum.TryParse method for each type as it is used.  when resolving
          variables, prevent interpreter readiness checks from being performed
          by the parser via SplitVariableName.

REFACTOR: make sure the eagle_platform(sourceId) element is not set for "safe"
          interpreters.

REFACTOR: remove incorrect uses of the SecurityPermission attribute.  also, use
          the SecurityCritical attribute instead when compiling for the .NET
          Framework 4.0.  the documentation seems unclear; however, based on my
          current understanding, when a type is marked with a LinkDemand or
          SecurityCritical attribute, it can only be called [directly] from code
          that is fully trusted (e.g. other managed code within the Eagle core
          library itself).  the Eagle core library is specifically designed to
          shield all native methods from all untrusted inputs and/or malicious
          intent by applications, plugins, and [non-administrative] users.
          however, this protection will only work if my understanding of the
          SecurityCritical and LinkDemand attributes is 100% correct.  when in
          doubt, disable the NATIVE compile-time option (e.g. using the command
          line argument /property:EagleNative=false to MSBuild).

REFACTOR: revise semantics of the WindowWidth, ContentWidth, and ContentMargin
          properties for the default host.  improve output of host information.

REFACTOR: cleanup integration points for the debugger subsystem.

REFACTOR: make sure all the test context members are marked as private in
          non-threaded builds.

REFACTOR: revise and reform usage of the NET_40 and MONO compile-time options.

REFACTOR: cleanup the way Windows and Unix native APIs are declared and used.

REFACTOR: make variable name formatting in error messages more consistent.

REFACTOR: mark the [getf], [setf], and [unsetf] commands as obsolete.

REFACTOR: support limiting the width of boxes via the BoxWidth property of the
          default host.  by default, this limit is disabled.

REFACTOR: cleanup usage of the IPair<T> interface.

REFACTOR: cleanup and modularize the command and expression parser subsystems.

REFACTOR: cleanup and modularize the ScriptBinder class and usage of it.  add
          IScriptBinder public interface to expose custom binding functionality
          to applications and plugins.  add an IBinder interface to formalize
          the functionality provided by the Binder class.  the IScriptBinder
          interface now inherits from the IBinder interface.

REFACTOR: modify the path scrubbing semantics used by [info script] in "safe"
          interpreters to preserve full path information when the script being
          evaluated resides underneath the base directory.

REFACTOR: adjust the window dimensions required for the FullSize host size and
          add a new size host size SuperFullSize.

REFACTOR: simplify the creation of an interpreter with the default options.

REFACTOR: removed the unused list field from all the String*Comparer classes.

REFACTOR: add a ClientData property to the Channel class and a GetOptions method
          to the ChannelStream class.

REFACTOR: bypass multiple Mono compiler bugs by moving the CommonOps.Generic<T>,
          CommonOps.Generic<T1, T2>, and ArrayOps.Generic<T> inner classes to
          their own file (GenericOps.cs) and making them outer classes (Mono bug
          #635720).

REFACTOR: disable the sample custom build tasks by default when building with
          XBuild (Mono bug #635767).

REFACTOR: modify the Script class to accept a group and description.  modify the
          XML schema accordingly.

REFACTOR: enhance the robustness of the benchmark tests.  also, report the
          percentage differences between the actual and expected elapsed time
          values.

REFACTOR: cleanup all the sample ICommand and IPlugin implementations.

REFACTOR: cleanup, extract, and modularize common code from all the default
          policy implementations.

REFACTOR: in a "safe" interpreter, the [info interps] sub-command should only
          return the child interpreters of that interpreter.

REFACTOR: make the In, Out, and Error properties for the console host work on
          Mono.

REFACTOR: *BREAKING CHANGE* rename all non-flag enumerations to their singular
          form, including ReturnCodes.

REFACTOR: *BREAKING CHANGE* cleanup implementation of the [debug memory] and
          [file information] commands, isolating the use of native code to the
          low-level APIs.  also, the [debug memory] command now returns the
          status of GC memory as well as the status of system memory, when
          available.

REFACTOR: *BREAKING CHANGE* the ICommand, IProcedure, and ISubCommand interfaces
          now inherit from the new IDynamicExecute interface.  the engine will
          detect and use the delegate provided by this interface instead of
          simply calling the Execute method if it is provided.

REFACTOR: *BREAKING CHANGE* cleanup implementation of the SubCommandFromEnsemble
          method.  also, support returning the matching ISubCommand in addition
          to the name. finally, replace all usage of the SubCommandFromEnsemble
          method with the new TryExecuteSubCommandFromEnsemble method.

REFACTOR: *BREAKING CHANGE* remove the obsolete interactive commands #flags and
          #result.  please use the #finfo and #rinfo interactive commands
          instead.

REFACTOR: *BREAKING CHANGE* move all internal and external TraceListener support
          methods to the DebugOps and Utility classes, respectively.

REFACTOR: *BREAKING CHANGE* rename all methods of the Engine and Interpreter
          classes that deal with IExecute objects from <verb>Execute to
          <verb>IExecute.  also, rename the enumeration values associated with
          IExecute objects.

REFACTOR: *BREAKING CHANGE* rename the Unmanaged command and plugin flag values
          to Native.

REFACTOR: *BREAKING CHANGE* move the GetFlags method from the IHost interface to
          the IInteractiveHost interface.  rename some overloads of the
          WriteResult method to WriteResultLine or WriteResultInfo, depending on
          their actual functional role.

REFACTOR: *BREAKING CHANGE* further cleanup of the IHost interface by breaking
          more pieces off into their own sub-interfaces.  the new IEngineHost
          interface is designed to support the minimal subset of functionality
          required by the script engine.  the new IDebugHost interface is
          designed to support the minimal subset of functionality required by
          the script debugger.  the new IStreamHost interface is designed to
          group all the Stream related properties and methods in one place.

REFACTOR: *BREAKING CHANGE* rename the global tests variable to eagle_tests.
          test constraints are accessed via the addConstraint, getConstraints,
          and haveConstraint procedures from now on.

REFACTOR: *BREAKING CHANGE* rename the IInfoHost interface to IInformationHost.

REFACTOR: *BREAKING CHANGE* move [info tclcommands], [info tclinterps], and
          [info tclthreads] to the [tcl command list], [tcl interps], and
          [tcl threads].

REFACTOR: *BREAKING CHANGE* rename the Expression class to ExpressionParser and
          break out the expression evaluation methods into a new
          ExpressionEvaluator class.

REFACTOR: *BREAKING CHANGE* for [clock format], rename the -timezone option to
          -isotimezone.

REFACTOR: *BREAKING CHANGE* remove the [info env] sub-command.  now that
          [info exists] can be used on the global env array, this sub-command is
          useless.

FEATURE: add Engine.EvaluateScript method overloads that take an IScript object.

FEATURE: support strict output parameter type checking for the [library] and
         [object] commands using the new -strictargs option.

FEATURE: allow [package require NativeTcl] to load the Eagle-specific native Tcl
         library (i.e. the one located in the Eagle library directory, if any).

FEATURE: add AddExecuteCallback method to the IInterpreter interface to allow
         delegates to be used for command implementations.

FEATURE: add [host reset -interface] sub-command and the IHost.Reset method to
         facilitate a cooperative reset of the interpreter host interface.

FEATURE: add ImageRuntimeVersion to the [info engine] sub-command to query the
         version of the CLR the assembly was compiled against.

FEATURE: add Disposed property to the IInterpreter interface.  this property is
         required for certain scenarios where the validity of the interpreter
         needs to be determined (e.g. from a secondary thread) to avoid throwing
         exceptions from inside the Engine and/or Interpreter classes.

FEATURE: add [file drive] sub-command to return drive information for the given
         path.

FEATURE: add [debug sysmemory] sub-command to query the system memory status.
         currently, this feature is limited to Windows.

FEATURE: add IsTclReady method to the IInterpreter interface.  this method is
         used to determine if the specified Tcl library and interpreter are
         ready for use.

FEATURE: add QueueTclThreadEvent method to the IInterpreter interface.  this
         method is used to queue events to the specified Tcl worker thread.

FEATURE: add -isolated option to the [test2] command.  this option allows the
         test setup, body, and cleanup scripts to be evaluated in an isolated
         interpreter created just for the test.  the interpreter creation flags
         that affect command visibility (e.g. "safe" mode flags) are inherited
         by the isolated interpreter.

FEATURE: add overloads of the Engine.EvaluateScript and Engine.SubstituteString
         methods that do not require engine flags (i.e. the default flags are
         used).

FEATURE: support simple integration with SQL Server stored procedures via the
         new Engine.EvaluateOneScript and Engine.SubstituteOneString methods.

FEATURE: expose the Profile and NoColor properties via the IHost interface.  all
         custom host implementations are expected to honor the values of these
         properties when displaying information.

FEATURE: expose the Unknown property of the IInterpreter interface.  the value
         of this property is the name of the command or procedure to be called
         when a command cannot be found by any resolvers.  setting this property
         to null causes all unknown command resolution to be skipped.

FEATURE: add the ResetResolvers, GetResolver, and AddResolver resolver API
         methods to the IInterpreter interface.

FEATURE: add the -default option to the [object create], [object invoke], and
         [library call] sub-commands to allow names of non-existent variables to
         be specified for output parameters when calling methods.

FEATURE: add [info processors] sub-command for compatibility with Tcl TIP #377.

FEATURE: add eagle_platform(permissionSet) element to hold the effective CAS
         policy permissions.  this element is only available if the CAS_POLICY
         option was enabled at compile-time.

FEATURE: add [debug ontoken] and [debug token] sub-commands to allow token-level
         breakpoints to be set.  each breakpoint is based on a source file name
         and a line number range.  add [debug breakpoints] sub-command to allow
         these breakpoints to be queried.

FEATURE: add -microseconds option to the [clock clicks] sub-command.

FEATURE: add [interp target] sub-command to get the relative target path for an
         alias (COMPAT: Tcl).

FEATURE: add the [debug onexecute] sub-command to toggle whether or not named
         commands and procedures can trigger a breakpoint.  add the
         [debug ontest] sub-command to toggle whether or not named tests can
         trigger a breakpoint.  add the [debug test] sub-command to control or
         return the named tests that can trigger a breakpoint.

FEATURE: expose -quote option to [regsub] and revise the list quoting rules for
         the substitution specification.  the new rule is that only portions of
         the match value itself are quoted.

FEATURE: the [info cmdcount] sub-command now accepts an optional argument that
         will return the number of times the specified command or procedure has
         been executed.

FEATURE: add support for official release binaries configured to run on the .NET
         Framework 4.0.

FEATURE: new #trustdir and #trustclr interactive commands to display, add to, or
         clear the list of trusted directories for the interpreter.

FEATURE: add [interp nopolicy] and [interp policy] sub-commands to allow full
         script-level control of command policies in nested child interpreters.

FEATURE: the default policy for the [source] command now has preliminary support
         for the concept of trusted directories.

FEATURE: tool enhancements that allow only the core library project to be built
         and/or only the build portion of the release preparation tool to be
         performed.

FEATURE: add the Engine.ExecuteExternalWithFrame method for use by applications
         and plugins.  this method can be used to execute a command directly
         without having to evaluate a script.  it is intended to be used after
         the command has been resolved by the Interpreter.GetExecuteViaResolvers
         method.

FEATURE: add support for creating and using "attribute flags" for use by
         applications and plugins.

************************* Beta 1.0.3893.34342 RELEASE *************************

BUGFIX: fix global namespace prefix being ignored by [info vars], see CodePlex
        bug #6975.

BUGFIX: fix global namespace prefix not being returned in [info vars] results,
        see CodePlex bug #6995.

BUGFIX: fix incorrect handling of the default header flags by the interactive
        loop when entering debug mode for the first time.  also, indicate more
        clearly when the interactive loop is in debug mode via the text in the
        header announcement section.

BUGFIX: make sure the default command/variable resolver honors the flags passed
        by the caller.

BUGFIX: make sure [object dispose] returns correct results when an object cannot
        actually be disposed (i.e. when it is simply removed instead).

BUGFIX: restore the ability to evaluate fully trusted scripts in a "safe"
        interpreter using the new IgnoreHidden engine flag.

BUGFIX: *BREAKING CHANGE* fix long-standing typo that prevented the background
        error handling from ever being used.  also, eliminate all usage of the
        DoesAnyExecuteExist method and remove it completely.

REFACTOR: completely remove the Engine.HasFlags method with two EngineFlags
          arguments and replace the usages of it with the appropriate single
          flag checking methods.

REFACTOR: allow limited usage of the [info script] sub-command by "safe"
          interpreters.

REFACTOR: allow the [source] command to evaluate files from trusted URIs in
          "safe" interpreters.

REFACTOR: skip issuing notifications for an interpreter when the engine flags
          for the interpreter prohibit it.

REFACTOR: add a Group property to the IIdentifier interface.  using this new
          property, mark all commands based on the type of functionality they
          provide (e.g. string, list, control, variable, introspection, channel,
          etc).  also, mark most expression functions based on the type of
          functionality they provide (e.g. constant, conversion, trigonometric,
          rounding, random, etc).

REFACTOR: modify script library search semantics when the compiled with the
          embedded script library option (i.e. always search on the native file
          system first, then fallback to the embedded script library).

REFACTOR: cleanup the IHost interface by breaking it into several interfaces and
          having one inherit the other.  the IHost interface itself is still a
          superset of all the others.  the interactive loop now requires only
          the minimal subset of the IHost interface functionality to work
          properly (i.e. all the other methods are now officially optional).

REFACTOR: reform the use of the interpreter exit flag by the interactive loop.

REFACTOR: allow previous result tracking to be disable at compile-time.

REFACTOR: *BREAKING CHANGE* completely remove the SubstituteOnly engine flag and
          replace the one and only usage of it with the engine mode enumeration
          instead.

REFACTOR: *BREAKING CHANGE* remove the GetAnyExecute and ResolveAnyExecute
          methods from the IInterpreter interface.  all external callers should
          use the newly exposed GetExecuteViaResolvers method instead.

FEATURE: add a setting to the web service configuration that allows a script to
         be evaluated in the created interpreter prior to its remote use.

FEATURE: add support for interactive extension commands (i.e. custom interactive
         commands).  these can override built-in interactive commands as well as
         add entirely new interactive commands.

FEATURE: add experimental support for nested child interpreters (i.e. traversal
         of nested child interpreters is now performed as required).

************************* Beta 1.0.3887.34777 RELEASE *************************

BUGFIX: the host argument to [uri ping] was being validated as an absolute URI
        when it is also allowed to be a simple host name or address.

BUGFIX: the -format option to the [clock format] did not support all the format
        strings used by Tcl, see CodePlex bug #6842.

BUGFIX: make sure appropriate error messages are displayed for the interactive
        #break command.

BUGFIX: when setting the console host input, output, and error streams, preserve
        the current encodings.  also, make sure AutoFlush is enabled for the
        stream writers.

BUGFIX: when displaying the previous result for the interpreter the wrong colors
        could be used.  also, the default foreground and background colors used
        for displaying results might be changed when it should not be.

BUGFIX: skip trying to display empty trace and variable information in the
        default debugger output (i.e. the debugger header) to conserve space on
        the screen.

BUGFIX: always use the property, not the variable, when attempting to determine
        the current output style of the host.

BUGFIX: correct the error message when invalid ConsoleColor values are detected
        during the loading of the host profile.

BUGFIX: prevent the current IHost for the Interpreter from being disposed via a
        script.

BUGFIX: fix incorrect stickiness of the HeaderFlags.Invalid flag when the local
        and/or interpreter header flags are being set by the user.

BUGFIX: by default, the core marshaller should support calling static members
        inherited by the target type, except those marked as private.

REFACTOR: make the object member constraint checking more uniform throughout the
          test suite.

REFACTOR: remove some redundant return code assignments.

REFACTOR: revise the semantics used by the default host for displaying the
          interpreter call stack.  by default, only call frames accessible via
          script (e.g. [info level], [uplevel], and [upvar]) are displayed.
          both the #frinfo and #stack interactive commands now have an optional
          boolean argument that can be used to force old behavior.

REFACTOR: enable callers of the IHost.WriteBox method to specify the foreground
          and background colors for the borders of the box.  also, the host is
          now notified when a box is about to be written or completed via the
          IHost.BeginBox and IHost.EndBox methods, respectively.  modified the
          [host writebox] sub-command to allow for finer grained control.

REFACTOR: cleanup the display of interpreter related information by the default
          host.  move the display logic for the result, complaint, and history
          information into separate methods.  also, make the naming and argument
          passing conventions for host display methods more consistent.

REFACTOR: cleanup the FormatOps class by removing unused code, marking methods
          as private, and other tidying.

REFACTOR: the IOperatorData interface and the OperatorClass class should be in
          private namespaces.

REFACTOR: insert tracking call frames when running tests to aid in debugging.

REFACTOR: add DefaultIn, DefaultOut, and DefaultError read-only properties to
          the IHost interface to query the original host streams in case they
          cannot be easily recreated.

REFACTOR: add ResetIn, ResetOut, and ResetError methods to the IHost interface
          to reset the host streams to their initial values.

REFACTOR: the [parray] procedure should accept an optional pattern argument
          (COMPAT: Tcl).  also, cleanup handling of really long array element
          values.

REFACTOR: cleanup the ReturnCodes enumeration by removing values that are not
          used directly by the library.

REFACTOR: expose the ability to parse an entire script at once via the method
          Utility.ParseScript.

REFACTOR: when using the Engine.Execute method from outside the engine, always
          use an extra interpreter nesting level.

REFACTOR: *BREAKING CHANGE* rename the Empty method of the QueueList and
          StackList classes to IsEmpty.  this is more consistent with the best
          practices for naming methods which simply return a boolean value
          without modifying any of the internal state of the object.

REFACTOR: *BREAKING CHANGE* move utility routines designed for external use out
          of the Interpreter class into the new Utility class.

FEATURE: add base26 utility methods for use by applications and plugins.

FEATURE: the core marshaller now supports automatically converting an opaque
         interpreter handle argument into an Interpreter object.

FEATURE: add support for an IHost implementation to display arbitrary additional
         information via the WriteCustomInfo method of the IHost interface.  if
         a custom IHost implementation does not need to display any additional
         information, it should simply return true from this method; otherwise,
         it should include the CustomInfo flag in the flags returned by the
         IHost.GetFlags method.  also, add the plumbing that allows this
         interface to be easily tested.

FEATURE: new #complaint, #lrinfo, #grinfo, and #hisinfo interactive commands to
         display detailed information about the previously stored complaint, the
         local result, the global result, and the command history, respectively.

FEATURE: new #frinfo interactive command to display detailed information about a
         specific call frame.

FEATURE: add experimental support for child interpreters.  for now, the path
         arguments to the [interp] command always refer to child interpreters in
         the current interpreter (i.e. no traversal of nested child interpreters
         is performed).  also, aliases should now work properly with multiple
         interpreters (i.e. the source and target interpreters no longer have to
         be the same).

FEATURE: add [debug paths] sub-command to allow detailed introspection of the
         possible locations for the script library.

FEATURE: add [host echo], [host errchan], [host inchan], and [host outchan]
         sub-commands to control the host input/output channels for use by the
         interactive shell.

FEATURE: add a ClientData property to the IPolicyData interface.

FEATURE: add Interpreter.DetectLibraryPath method to help embedded users detect
         the script library in common locations.

FEATURE: add [array values] sub-command to return a list of values in an array,
         optionally restricted by a matching mode and pattern.

FEATURE: the core marshaller now supports automatically converting a list of
         strings to a one-dimensional array of the specified type.

FEATURE: add SyntaxType property to the IToken interface for later use in syntax
         highlighting support.

FEATURE: the setup now has full support for the .NET Framework 4.0 if Eagle has
         been built against it.  the official setup will still be built against
         the .NET Framework 2.0 for the foreseeable future.

************************* Beta 1.0.3828.11878 RELEASE *************************

BUGFIX: skip test object-4.10 (WiX) when the test data files are not available.

BUGFIX: modify the #suspend and #resume interactive commands to prevent them
        from taking into account the enabled state of the debugger.

BUGFIX: add the Types, Command, and Result properties of the IDebugger interface
        to the debugger output.

BUGFIX: fix exception with the 4-argument version of [string last], see CodePlex
        bug #6333.  added tests to cover all the corner cases of [string first]
        and [string last].

BUGFIX: the #go and #halt interactive commands should be available even when the
        debugger has been disabled at compile-time.

BUGFIX: use DoesModuleExist in AddModule, not DoesDelegateExist (typo).

BUGFIX: the GetBasePath method must check for a null assembly argument.

BUGFIX: check for null entity names prior to using them in all the applicable
        Interpreter.Add* methods.

BUGFIX: the default plugin should not assume that the plugin version is valid.

REFACTOR: enhance command list output generated by the interactive help so that
          it aligns the command names within their respective columns and
          includes the total number of interactive commands available.

REFACTOR: preliminary support for custom command and variable resolvers.

REFACTOR: reform usage of the debugger in the interactive loop.

REFACTOR: add notifications for setting the Cancel, Unwind, and Halt properties
          of the Interpreter.

REFACTOR: modify [object verifyall] to skip over assemblies that were loaded
          from the global assembly cache (by default); this behavior may be
          overridden by passing a non-zero boolean value as the optional first
          argument.

REFACTOR: *BREAKING CHANGE* revise the IFunction, IHost, IObject, IObjectType,
          IPackage, and IProcedure interfaces and the constructors of the
          default classes to make use the new I*Data interfaces.  this is
          technically a breaking change for all external users of these
          interfaces; however, there should not really be any of those at this
          point.

FEATURE: add [tcl complete] sub-command to check the completeness of a Tcl
         command.

FEATURE: add PostProcess boolean flag to the ITraceInfo interface.  also, add
         the ability to disable post-processing of values for all variables in
         the interpreter.

FEATURE: add [debug halt] sub-command to completely unwind the interpreter call
         stack and all but the outermost interactive loop.  correct behavior
         when the HaltEvaluate method is used from a command invoked via the
         interactive loop.

FEATURE: add #resh and #fresh interactive commands to help manage the halt flag.

FEATURE: add [debug suspend] and [debug resume] sub-commands to allow direct
         management of the overall debugger state from scripts.

FEATURE: support two optional arguments to [debug break].  the first argument,
         if supplied, must be a boolean value.  a non-zero boolean value is used
         to indicate that an error should be raised if the breakpoint is hit
         when the debugger is disabled.  the second argument is a string.  if
         supplied, it should contain a message about the breakpoint (e.g. a
         description of its location and/or the reason it may have been hit).

************************* Beta 1.0.3796.36942 RELEASE *************************

BUGFIX: make sure that all non-creatable classes are marked as static and that
        static policy methods have the most restrictive visibility (private).

BUGFIX: add missing Exit, HasAliases, and NextId members to the IInterpreter
        interface.  verify that the IInterpreter interface now contains exactly
        the members it should.

BUGFIX: fix bug in the construction of Variant objects.  if the constructor that
        accepts an object was used with a type not supported by the base class,
        the resulting Variant object would have an invalid (null) value.  also,
        modify the cloning semantics slightly to allow the object to be cleanly
        marshalled by reference.

BUGFIX: fix various small portability issues with Mono on Unix.  the Mono C#
        compiler still fails to compile the library due to issues with its
        generics implementation.

REFACTOR: make all invalid and reserved enumeration values consistent with each
          other whenever possible.  also, only define enumerations if the
          required features are enabled at compile-time.

REFACTOR: centralize logic that determines if breakpoints can be hit during the
          evaluation of scripts, expressions, etc.

REFACTOR: slightly revise engine flags handling used when the engine modifies
          the errorCode and errorInfo variables.

REFACTOR: allow all interpreter readiness checks OR just the checks unrelated to
          native stack checking to be skipped by using the appropriate values in
          the interpreter flags.

REFACTOR: the [exit] command should accept ExitCodes enumeration values as well
          as integers for use as exit codes.

REFACTOR: revise how the debugger and built-in interpreter hosts are created.

REFACTOR: revise and enhance error reporting for the expression parser.

REFACTOR: cleanup and revise the sample projects.

REFACTOR: *BREAKING CHANGE* revise the IAlias interface and the constructor of
          the default alias to make use of the new IAliasData interface.  this
          is technically a breaking change for all external users of the IAlias
          interface; however, there should not really be any of those at this
          point.

REFACTOR: *BREAKING CHANGE* revise the ICommand interface and the constructor of
          the default command to make use the new ICommandData interface.  this
          is a breaking change for all commands that derive from the default
          command.

REFACTOR: *BREAKING CHANGE* revise the IPlugin interface and the constructor of
          the default plugin to make use the new IPluginData interface.  this is
          a breaking change for all plugins that derive from the default plugin.

REFACTOR: *BREAKING CHANGE* revise all internal handling of application domains.
          unfortunately, this is a breaking change for all plugins because an
          extra parameter is required in the call to the constructor so that it
          can keep track of the application domain to which it belongs.

REFACTOR: *BREAKING CHANGE* rename [info lastpid] to [info previouspid] to avoid
          confusion.  this is a breaking change for any scripts that use the
          [info lastpid] sub-command.  also, rename IError.LastReturnCode to
          IError.PreviousReturnCode.  a few other things were renamed as well
          (for consistency); however, they are all non-public.

REFACTOR: *UNFINISHED* add all of the necessary plumbing to enable plugins to be
          loaded into isolated application domains AND for the commands defined
          in those plugins to be automatically added to the interpreter.  this
          is NOT a security feature.  this feature is currently disabled by
          default for three reasons:  first, it requires that the Interpreter
          and Number classes derive from ScriptMarshalByRefObject, which causes
          quite a few legitimate compiler warnings regarding direct field access
          by the core commands.  second, several of the components marked with
          the Serializable attribute need custom ISerializable implementations
          to avoid Unicode encoding issues (i.e. when we want to put raw binary
          data into a "Unicode" string via the TwoByteEncoding or something else
          similarly evil).  third, any policies contained with a plugin cannot
          currently be loaded into the isolated application domain.  finally, it
          is highly likely that variable traces will never be allowed in plugins
          loaded into isolated application domains.

FEATURE: add interactive #again command to execute the last interactive input
         again.

FEATURE: add -debug option to [test2] to allow detailed analyses of test result
         matching issues.

FEATURE: add PublicKey to the [info engine] sub-command to query the public key
         of the library.  also added the associated element to the platform
         array.

FEATURE: add [object alias] and [object unalias] sub-commands to allow direct
         management of object (or type) aliases from scripts.

************************* Beta 1.0.3771.06643 RELEASE *************************

BUGFIX: make sure all the projects can use the ConsoleColor enumeration even
        when compiling without console support.

BUGFIX: make sure hosts are setup even if they are changed after the interpreter
        has been created.

BUGFIX: skip attempting to query the default colors from hosts that do not have
        color support.

BUGFIX: skip attempting to query and/or set sizes and positions for hosts that
        do not support it.

BUGFIX: fix compilation issues when console support, native code, and/or Tcl
        integration are disabled.

BUGFIX: fix (split) tests object-12.2, object-12.3, object-13.1, object-13.2,
        and object-97.3 to work with the .NET Framework 4.0.

BUGFIX: skip test object-4.10 (WiX) when running on the .NET Framework 4.0.

BUGFIX: fix assembly strong-name detection logic on Mono.

BUGFIX: add missing [socket] test constraint to tests socket-1.1, socket-1.2,
        socket-1.3, socket-2.1, socket-3.1

BUGFIX: make sure the test path is fully qualified.

BUGFIX: correct usage of LibraryPathSetting by the web service.

BUGFIX: only define the NoHistory, NoCallbackQueue, NoBreakpoint, and NoWatch
        flags and their associated methods if the required features are enabled
        at compile-time.

BUGFIX: only define NotifyTypes and NotifyFlags values if they are used by the
        library based on the options enabled at compile-time.

BUGFIX: prevent all parts of the notification system from being compiled into
        the library unless the NOTIFY and/or NOTIFY_OBJECT options are enabled
        at compile-time.  this includes the ScriptEventArgs class and the
        IScriptEventArgs interface.

BUGFIX: prevent all parts of the Code Access Security (CAS) support from being
        compiled into the library unless the CAS_POLICY option is enabled at
        compile-time.

BUGFIX: correct creation and usage semantics for both the Script class and the
        IScript interface.

BUGFIX: add missing ObjectId attributes to all delegates and several classes.

BUGFIX: the UriKind.RelativeOrAbsolute value should not be used when attempting
        to validate absolute URIs.

BUGFIX: fix issue with [exec -shell] when a new process is not actually created.
        prevent remote URIs from being treated like local file names.  cleanup
        and improve the clarity of the code.  enforce transactional semantics
        with regard to the returned process Id.

BUGFIX: fix bug in expression parser that prevented it from properly parsing any
        expressions contained within other [bigger] strings.

BUGFIX: fix Interpreter creation flags issue in SetupDebugger that resulted in
        redundant interpreters being created.

BUGFIX: fix infinite recursion issue between the Engine.IsThrowOnDisposed and
        Interpreter.CheckDisposed methods.

BUGFIX: make sure the test suite never uses the [puts] command directly unless
        it is absolutely necessary.

BUGFIX: in build tools, only search sub-directories when absolutely necessary.

REFACTOR: cleanup and modularize handling of environment variables.

REFACTOR: make the available interactive help consistent with the features that
          are enabled at compile-time.

REFACTOR: allow embedding of user-defined text into the primary assembly via the
          new AssemblyText attribute.

REFACTOR: add special-case code to the engine to detect and gracefully handle a
          command marking the interpreter as exited (i.e. bail out instead of
          trying in vain to execute any further commands).

REFACTOR: make field and [virtual] property usage consistent in the ParseToken,
          ParseState, ExpressionToken, and ExpressionState classes.

REFACTOR: add interactive input properties to the IInterpreter interface to
          facilitate better integration with the input processing done by the
          interactive loop.

REFACTOR: add an overload of the IHost.ReadKey method that does not require the
          console and deprecate the one that does.

REFACTOR: *PERF* tweak performance of several critical code paths through the
          parser and the interpreter.

REFACTOR: consistency and robustness fixes to regular expression match checking,
          engine exception notifications, and assembly type introspection.

REFACTOR: revise the return value type checking to be more consistent and less
          brittle for types that can/should be converted to a string.  also,
          make sure the core marshaller type checking methods are consistently
          named.

REFACTOR: cleanup creation and usage semantics for the random number generators.

REFACTOR: cleanup and modularize the disposal logic for the Interpreter class.

REFACTOR: reduce confusion between the engine callback queue and the collection
          of cached callback delegates by renaming the callback queue related
          variables, methods, enumeration values, and compile-time constants.

REFACTOR: enable [unfinished] AppDomain management support by the interpreter to
          be excluded at compile-time.  it is now excluded by default.

REFACTOR: when compiled without console support, use an IHost that supports
          just enough functionality to actually complete the test suite.

REFACTOR: add the necessary code to differentiate between delay-signed and
          fully-signed strong-named assemblies.  this will not work on Mono (in
          Unix).

REFACTOR: use the latest available .NET Framework by default when building from
          the command line via the build tool.  the .NET Framework 2.0 or 3.5
          may be selected manually by setting the NETFX20ONLY or NETFX35ONLY
          environment variables, respectively.

REFACTOR: modify .NET Framework detection build targets and revise how the
          related compile-time constants are used.

REFACTOR: *BREAKING CHANGE* rename the DebuggerFlags enumeration along with all
          the related fields and variables to HeaderFlags, everywhere.  the new
          name more precisely describes the actual effects of these flags.

REFACTOR: support selectively displaying header information based on the size
          of the display area.  this feature may require further usability
          tweaks.

REFACTOR: disable the isolated debugger interpreter by default.  it can be
          enabled by specifying the Debug flag when creating the Interpreter or
          later by executing the command [debug setup true true].

REFACTOR: *BREAKING CHANGE* rename IScript.Id to IScript.Name.  rename IEvent.Id
          to IEvent.Name.  also, both interfaces now inherit from IIdentifier.

FEATURE: new #iflags interactive command to get and set the interpreter flags.

FEATURE: add built-in support for the ADO.NET 2.0 Provider for SQLite (a.k.a.
         System.Data.SQLite) to the [sql] command.

FEATURE: add ObjectIds to the [info engine] sub-command to query the object Ids
         for all types in the library.  also added the associated element to the
         platform array.

FEATURE: support reading and evaluating scripts, from files and streams, inside
         XML that conform to the schema compiled into the library (i.e. from the
         file Eagle.xsd).  also, added an engine flag to disable this behavior.

FEATURE: allow engine notifications to be disabled on a per-call basis by using
         the new NoNotify engine flag.  this flag only applies to the methods of
         the Engine class.

FEATURE: add experimental [object verifyall] sub-command to verify strong-name
         signatures and check for Authenticode certificates on all assemblies in
         the current AppDomain.

************************* Beta 1.0.3756.18875 RELEASE *************************

BUGFIX: for the PowerShell cmdlet, change all the boolean parameters to use the
        provided SwitchParameter type (i.e. UseSwitchParameterInsteadOfBoolean).

BUGFIX: make sure that all public components that are not designed to be created
        (i.e. they only contain static members) have a private constructor.

BUGFIX: fix tclLoad-1.1 test to check for Tcl 8.6 or higher (i.e. it uses script
        cancellation).

BUGFIX: fix tclLoad-1.5 test to check the return code of CreateTclThread, which
        can fail on some systems (e.g. the .NET Framework 2.0 RTM on Windows
        2000 SP4).

BUGFIX: make the lsort-9.2, lsort-9.3, lsort-9.4, and lsort-9.5 tests to accept
        correct answers that differ from the ones provided by the .NET Framework
        2.0 SP2.

BUGFIX: fix diagnostic output issue for clean tool.  make it quieter by default.

BUGFIX: fix ERRORLEVEL handling for Winodws 7 in all batch file based tools.

BUGFIX: save and restore the sleep time property for the interpreter in the
        tests that modify it.

BUGFIX: make test object-4.10 (WiX) work properly on Mono despite an extraneous
        line feed in the captured [exec] output.

BUGFIX: skip tests array-1.12 and array-1.13 in Tcl, see SF bugs #2889257 and
        #2889293.

BUGFIX: fork test upvar-8.3 into pre-tcl86 and post-tcl86 versions due to a
        change in the returned error message.

BUGFIX: prevent multiple debugger prompts when the Break environment variable is
        initially set during shell startup.

BUGFIX: fix error line number management in the interactive loop.

BUGFIX: fix out-of-bounds error for the interactive #iinfo command when there
        are no active script file names.

BUGFIX: do not display the Interpreter.Complaint string in red unless there is a
        valid one (i.e. it is not null or empty).

BUGFIX: make the default host properly display null object values.

BUGFIX: add missing ThreadId, BackgroundError, and Precision members to the
        IInterpreter interface.

BUGFIX: only compile the file IExecuteCache.cs if the EXECUTE_CACHE compile
        option is enabled.

BUGFIX: remove some extraneous "File Not Found" outputs in the build tools.  fix
        error checking semantics in the release preparation tool when returning
        from the build tool.  also, correct some typos in diagnostic messages.
        enable skipping the build steps in the release preparation tool.  also,
        run WinRAR in the background when creating the self-extracting archives.

BUGFIX: make sure that the -alias option works even when there is an existing
        opaque object handle name that refers to the same object.

BUGFIX: [object members] needs to return assembly qualified type names.  second,
        it should not return duplicate member names when method signatures are
        not selected.  third, it should not return the method attributes unless
        they are specifically requested.

BUGFIX: fix detection of assembly qualified names when confronted with types
        containing multiple generic type parameters.

BUGFIX: fix implicit opaque object handle leak in test winForms-4.1.

BUGFIX: fix callback leaks in tests object-4.5, object-10.2, object-10.3,
        object-10.5, vwait-1.4, vwait-1.5, vwait-1.6, vwait-1.7, winForms-4.1,
        winForms-5.1, winForms-5.2, winForms-7.1, winForms-8.1, and xaml-1.1.

BUGFIX: add null pattern checking to the substring case for StringOps.Match.

BUGFIX: prevent nonexistent custom test prologue/epilogue files from causing the
        test suite to raise errors.

BUGFIX: make upvar-10.1 test pass when logging has been explicitly disabled.

REFACTOR: cleanup the processing and displaying of command line arguments in the
          test suite prologue.

REFACTOR: allow for testing to be halted on the first test failure via the test
          suite flag -stopOnFailure.  this flag has no effect if the test suite
          is running inside Tcl.

REFACTOR: add plumbing to support displaying the color settings for the host via
          the #hinfo interactive command.

REFACTOR: issue a trace warning when the status and/or value of nonexistent
          options are requested.

REFACTOR: make the banner, legalese, and interactive help displays respect all
          color settings.  also, generally reform all color handling to be more
          robust and conservative with respect to the chosen interpreter host.

REFACTOR: make all usage of Interpreter.thisPackageName more robust.

REFACTOR: enable the CommandCallback class to skip creating opaque object
          handles for callback scripts.

REFACTOR: expose getColumnValue and getRowColumnValue to Tcl.  however, they
          will only work in Tcl 8.5 or higher.

REFACTOR: embed the source identifier from the Fossil checkout into the primary
          assembly via the new AssemblySourceId attribute.

REFACTOR: support overriding the default settings for project compilation on a
          per-user basis.

REFACTOR: add an experimental caching dictionary class.  for now, it is disabled
          by default because it still needs work.

REFACTOR: make the interactive #iinfo and #show commands idempotent and
          capable of displaying the local result as well as the global one.
          also, make it clear (via flags) whether a result is local or global.

REFACTOR: make the default host handle colors and formatting for non-standard
          return codes is a more customizable way.

REFACTOR: make it clear in the interactive shell when the primary assembly has
          been Authenticode signed.

REFACTOR: cleanup the setup and revise the component names and descriptions.

REFACTOR: allow None to be recognized as a ConsoleColor for the purposes of
          loading the host profile.

REFACTOR: add unit test to demonstrate that interactive script cancellation can
          work properly from a secondary thread.

REFACTOR: make the build tool select the latest available .NET Framework version
          (and the matching solution file) unless the NETFX20ONLY environment
          variable is defined.

REFACTOR: revise how the web service handles settings and flags (i.e. allow them
          to be modified via environment variables and/or the web configuration
          file).

REFACTOR: add the public IGetInterpreter and ISetInterpreter interfaces and make
          use of them in the library.  they are designed to provide an official
          way to get and/or set the interpreter instance associated with a given
          component.

REFACTOR: provide a cleaner way to construct package directories while embedded
          within an application (e.g. the script library directory containing
          the init.eagle file).

REFACTOR: the source archive now includes the source code and binary for the
          sha1sum tool.

REFACTOR: the official setup now requires the .NET Framework 2.0 SP2 or higher.
          it has been generally available since 2009/01/16 and is supported on
          all operating systems supported by the RTM version.  if this does not
          meet your needs, the setup may be customized and rebuilt using Inno
          Setup (http://www.jrsoftware.org/) and the provided setup source code.

REFACTOR: make sure that the unit test suites for third-party plugins have easy
          access to check for defined test constraints.

REFACTOR: further cleanup/modularize output handling in the PowerShell cmdlet.

REFACTOR: *SHELL* by default, we now dynamically load and call the interactive
          loop entry point in the Eagle library (i.e. Interpreter.ShellMain).
          this enables the shell to use any compatible version of the Eagle
          library, not just the one it was built against.

REFACTOR: *BREAKING CHANGE* rename IHost.WriteDebuggerHeader/Footer to
          IHost.WriteHeader/Footer.

FEATURE: new -trace command line option is used to enable tracing to the
         console without having to set the Trace environment variable.

FEATURE: add #canexit interactive command to toggle whether scripts are allowed
         to exit the application.

FEATURE: add [host namedcolor] sub-command to query the color and/or set values
         for a named color setting.  to standardize getting and setting named
         color settings across all kinds of interpreter hosts, new overloads of
         the IHost.GetColors and IHost.SetColors methods have been added.

FEATURE: add [object callbackflags] sub-command to set the flags on a callback.

FEATURE: add [object removecallback] sub-command to remove callbacks.

FEATURE: add -fail and -message options to [exit].  allow the interpreter host
         to reject exit attempts.

FEATURE: add -ignorestderr option to [exec] (see TIP #267 from Tcl 8.5).

FEATURE: add -noCancel option to [test2] to prevent the entire evaluation stack
         from being unwound by the script being tested.  also, make the -noExit
         option apply to the setup and cleanup script blocks as well as the test
         body itself.

FEATURE: add the ability to disable throwing exceptions when a disposed [Eagle]
         object is accessed.  this feature can be activated for all object types
         by setting the NoThrowOnDisposed environment variable (to anything). in
         addition, an Interpreter will no longer throw an exception when it is
         accessed after being disposed unless the ThrowOnDisposed flag was
         specified in the interpreter creation flags.

FEATURE: add the ability to break into the debugger when Interpreter.Create is
         called.  this is necessary to support debugging Eagle when it is
         embedded within an application that is not a shell.  this feature can
         be activated by setting the Break environment variable (to anything)
         prior to creating the Interpreter or by using the BreakOnCreate
         interpreter creation flag.

FEATURE: add the WiX integration project EagleExtensions.  this project contains
         a WiX preprocessor extension that allows Eagle variables, commands, and
         scripts to be used in WiX authoring.  this project will not build (i.e.
         it will be skipped automatically) unless you have WiX version 3.0 or
         higher installed (version 3.5 or higher is recommended). the necessary
         files have also been added to the setup.

************************* Beta 1.0.3736.02044 RELEASE *************************

BUGFIX: the [string format] command should provide a way to prevent numeric
        and/or date interpretation of its arguments.

BUGFIX: prevent incremental builds from rebuilding everything due to the issue
        described in Microsoft Connect FeedbackID 470485.  in summary, producing
        an XML documentation file during the build process prevents incremental
        builds from working correctly (i.e. they always rebuild everything).

BUGFIX: prevent warnings about being unable to overwrite in-use files in the
        BuildTasks output directory by skipping the custom build tasks for the
        Sample project when building inside Visual Studio.  for more detailed
        information on this issue, search the Microsoft .NET Development Forums
        for the threads 7ff580c8-bc13-444a-b887-e8909c82629c, entitled "Custom
        task dll in use after build" and 4d67b00b-07ef-4fa3-b581-234fca5caac0,
        entitled "Task dll is locked after build".

BUGFIX: if necessary, set env(HOME) based on the HOMEDRIVE and HOMEPATH
        environment variables (COMPAT: Tcl).

BUGFIX: fix the rotate-left (<<<) and rotate-right (>>>) operators.

BUGFIX: make sure to use the built-in Enum.TryParse when compiling for the .NET
        Framework 4.0 or higher.

BUGFIX: check for null array of methods passed to FindMethodsAndFixupArguments.

BUGFIX: remove optional argument decorations from the result of [info args].

BUGFIX: make [info default] return accurate information now that optional
        arguments are supported.

BUGFIX: display array searches when variable information is displayed.

BUGFIX: fix handling of [host close] by the interactive loop.

BUGFIX: change the default return value of _Hosts.Console.IsOpen to true so the
        interactive loop can work properly on Mono.

BUGFIX: make sure the System.Management.Automation.dll is not copied into the
        output directory by MSBuild.

BUGFIX: fix the file name handling logic in Engine.*ReadScriptFile.

BUGFIX: make sure that using the NoTitle and/or NoIcon options does not break
        console Ctrl-C support.

BUGFIX: prevent thread contexts from being re-created by blocking notifications
        during interpreter disposal.

BUGFIX: only tear down the thread specific data for a particular interpreter in
        Interpreter.DisposeThread.

BUGFIX: check breakpoints when exiting from a substitution call.

BUGFIX: prevent infinite recursion via [unknown] (i.e. if it tries to execute a
        nonexistent command).

BUGFIX: do not allow exceptions to escape from the GetScript and Prompt methods
        of the IHost interface.

BUGFIX: the core IHost implementation should not modify the provided script
        name using FormatOps.ScriptTypeToFileName.

BUGFIX: the test project must use the Engine.QueueWorkItem method instead of
        using the thread pool directly.  also, it must handle all the corner
        cases for the IHost.GetScript method (i.e. the IHost implementation may
        opt to return the text of the requested script, a local file name, or a
        remote URI).

BUGFIX: better error reporting for interactive #rehash command.

BUGFIX: fix "best" build selection issue in TclWrapper, the debug affinity of a
        particular build must not prevent higher priority builds with the same
        version number from being selected.

BUGFIX: make Engine.ReadScriptStream stop consuming characters from the stream
        when it encounters an end-of-file character.

BUGFIX: fix the Ctrl-C handler not being managed correctly when [host close]
        and/or [host open] are used.

BUGFIX: fix the -line and -linestop options to [regexp] and [regsub] to
        properly conform to the Tcl specification.

BUGFIX: fix [info subcommands] when used with a command alias.

BUGFIX: fix core marshaller handling of array arguments that are already of the
        required type.

BUGFIX: fix core marshaller handling of arrays with zero length bounds.

BUGFIX: fix typos related to an incorrect usage pattern for the LooksLikeOption
        and BadOption methods.

BUGFIX: fix [sql execute -type NonQuery ...] to return the same integer value
        returned by the .NET Framework method (i.e. number of rows affected).

BUGFIX: mark _Commands.Alias as "safe" because it provides no functionality by
        itself.

BUGFIX: in Tcl, revise and export [exportAndImportPackageCommands] from the
        script library for use by third-party packages.

BUGFIX: fix the variable leak detection support logic in runAllTests.  the
        global variable test_file is set by the Interpreter itself and must be
        unset prior to recording the global variable count for accounting
        purposes.

BUGFIX: fix the shift-left (<<) and shift-right (>>) operators with respect to
        negative shift values (COMPAT: Tcl 8.4).

BUGFIX: remove a redundant call to FixupVariants from the rotate-left (<<<)
        operator.

BUGFIX: fix race condition for the interpreter notification flags (e.g. the
        NoNotify flag) that can occur when multiple threads are trying to fire
        event notifications in very close proximity to one another.

BUGFIX: slightly relax checking of the build configuration directory name in the
        PathOps.GetBasePath method.

BUGFIX: The Example usage of FormatResult should use the actual return code and
        should include the error line number where applicable.

BUGFIX: make sure the DefineConstants list includes the EXECUTE_CACHE define and
        that the list itself ends with a null element for better C# syntactical
        correctness.

BUGFIX: improve compliance with the PowerShell 2.0 cmdlet standard.  make error
        reporting more robust and consistent.

BUGFIX: to improve compatibility, do not derive enumerated types from uint.

BUGFIX: attempt to mitigate disposing of [Tcl in] an Interpreter on a different
        thread than it was created on, please see ticket #1335fd994e.  this is
        only a partial fix.  it skips attempting to dispose of the Tcl subsystem
        if it has not been used.  failing that, it attempts to put all the Tcl
        related objects into a global (static) cache for later transfer if and
        when an Interpreter is created on the correct thread.  finally, more
        detailed diagnostic messages are provided to aid in debugging this
        situation.

BUGFIX: fine-tune result handling in the Interpreter creation code.  the Result
        [object] for a successful call should be null (or an empty string if the
        script library initialization is performed).

BUGFIX: in Debugger.CreateInterpreter, check if the Interpreter was sucessfully
        created before using it.

BUGFIX: fix an incorrect directory name handling bug in clean tool when cleaning
        up after plugins when there are spaces in the source code root directory
        name.

BUGFIX: fix Mono runtime version detection (broken as of Mono 2.6.0?).  also,
        adjust version number checking in the test suite (i.e. version.eagle) to
        be slightly more relaxed.

BUGFIX: correct long file name handling in the object-4.8 (i.e. the PowerShell
        custom cmdlet) test.

BUGFIX: add administrator constraint support for tests object-4.6 and object-4.8
        (Windows Vista/7 specific).  make the WMI test (i.e. object-4.6)
        slightly more robust.

BUGFIX: change test library-1.1 to allow a NULL return value from the Windows
        API function GetConsoleWindow if there is no interactive user (this may
        be Windows Vista/7 specific).

BUGFIX: fix incorrect regular expression bug in the build version tagging tool.

BUGFIX: fix incorrect XCOPY flags specified for files bug in the build updating
        tool.

BUGFIX: use a more robust method of unsetting environment variables in the
        release preparation tool (i.e. because we do not want to accidentally
        change the ERRORLEVEL).

BUGFIX: *BREAKING CHANGE* rename incorrectly named SetNoResultError routine to
        SetNoResetError.

REFACTOR: simplify all the build tasks by factoring out common code into the
          base class.

REFACTOR: simplify all the PowerShell cmdlets by factoring out common code into
          the base class.

REFACTOR: there is no need to lock the Interpreter in PreSetup.

REFACTOR: centralize all code that deals with modifying the interpreter creation
          flags and startup option handling (e.g. this is still accomplished via
          the documented environment variables for now).

REFACTOR: organize all the Eagle projects within all the solutions into groups.

REFACTOR: update various version numbers for the Visual Studio 2010 RC.

REFACTOR: modify the #testdir interactive command to include the default core
          and plugin test paths in the output.

REFACTOR: revise handling of the path variable (for use by third-party test
          suites to locate their own files).  the runTestPrologue helper
          procedure will now set the path global variable to the directory
          containing the file that invoked it immediately before running the
          standard test prologue.  also, the runTestEpilogue helper procedure
          will now unset the path global variable immediately after running the
          standard test epilogue.

REFACTOR: add a simpler overload of Engine.ReadScriptFile and use it when
          appropriate.

REFACTOR: for [host], allow using the -relx and -rely options to augment the
          values provided with the -x and -y options, if any.

REFACTOR: remove unnecessary helper routines from the engine.

REFACTOR: add experimental support for command lookup caching (resolve only).

REFACTOR: cleanup and modify the usage semantics of IHost.GetScript to properly
          handle all the valid corner cases (i.e. the IHost implementation may
          opt to return the text of the requested script, a local file name, or
          a remote URI).

REFACTOR: optimize runtime detection of Mono.

REFACTOR: *PERF* minor Engine performance tweaks.

REFACTOR: enable compile-time exclusion of debugger support.

REFACTOR: cleanup [debug] and have it use the new debugger API.

REFACTOR: avoid redundant setting of the return code when processing optional
          arguments in [info].

REFACTOR: make the internal debugger API and its usage more consistent.

REFACTOR: in Interpreter, validate strings prior to using File.Exists.

REFACTOR: move all non-console specific functionality from _Hosts.Console into
          the new _Hosts.Core class.

REFACTOR: skip loading the host profile if requested.  make the host profile
          loader cleaner and more robust.

REFACTOR: skip setting up the host script cancellation interface if requested.

REFACTOR: add overloads to the Interpreter.Create and InteractiveLoop methods
          that greatly simplify the process of creating and using interpreters
          with relatively standard behavior.

REFACTOR: cleanup all the implementations of IHost.GetScript.  enhance the core
          IHost.GetScript implementation so that custom code is no longer
          required to simply use an extra resource manager as a possible script
          location.

REFACTOR: update Fossil tool w/source to latest release version 20091220213451.

REFACTOR: detect the build tool and operating system in use during the build
          process.  this enables build targets to be skipped that rely upon a
          specific build tool (e.g. MSBuild) and/or operating system (e.g.
          Windows).

REFACTOR: check for null return from GetMethods, GetParameters, and GetFields.

REFACTOR: enable compile-time exclusion of the dedicated test code used by the
          unit testing framework.

REFACTOR: cleanup dedicated test code style.

REFACTOR: cleanup core parsing routines for style and usage.

REFACTOR: add baseline [string match] benchmarks.

FEATURE: add an example web services project EagleServices.  this project is
         considered highly experimental and should not be used in a production
         environment.  this project will not build (i.e. it will be skipped
         automatically) unless you have the "Web Application Projects" project
         type installed for the version of Visual Studio you are building with.

FEATURE: add -identity option to [object invoke] to allow for the explicit
         invocation of the object return value handling from the core marshaller
         (i.e. MarshalOps.FixupReturnValue) on any script-accessible object.

FEATURE: add -compiled, -explicit, and -reverse options to [regexp] and
         [regsub].

FEATURE: new -ptest command line option and #ptest interactive command to
         simplify running plugin-specific unit tests and/or suites.

FEATURE: test suite now runs cleanly on Windows 7 with or without administrator
         rights.

************************* Beta 1.0.3620.08845 RELEASE *************************

BUGFIX: make sure that [array] does not operate on undefined variables.

BUGFIX: add support for optional arguments (via [proc] and [apply]) to implement
        CodePlex feature #2985.

BUGFIX: make fetchAnUpdate type case-insensitive.

BUGFIX: flag variables as dirty only after the requested changes have been made
        to them.

BUGFIX: modify [vwait] and WaitVariable to properly support multi-threaded
        scenarios.

BUGFIX: make sure null lists passed to ListToEnglish do not cause exceptions.

BUGFIX: favor normal builds of Tcl over basekits.  properly detect official
        builds of Tcl for Windows that are threaded-by-default.

BUGFIX: allow test logging to be disabled.

BUGFIX: test socket-1.2 (and a few other tests) should not be skipped for Tcl.
        the larger problem here involved differences in how Tcltest and Eagle
        handle complex test constraint expressions.

BUGFIX: make [object resolve] work properly when running on the .NET Framework
        4.0.

BUGFIX: do not force the creation of the script cancellation thread if no script
        timeout has been set.

BUGFIX: when deleting the global namespace, honor all read-only flags.

BUGFIX: the [rename] command must remove leading colons from command names.

BUGFIX: make [info nameofexecutable] use forward slash as the directory
        separator (COMPAT: Tcl).  make [exec] pass the native executable file
        name to the system.

BUGFIX: verify the EagleBinaryOutputPath and/or EaglePackageOutputPath build
        properties are set before attempting to use them.

BUGFIX: the official build tools should perform build logging by default.  also,
        fix the ability to debug the build tools.

REFACTOR: cleanup the core list parsing routines.

REFACTOR: extend the IHost interface to allow hosts to handle calls to create
          new threads and dispatch work items to the thread pool.  also, allow
          hosts to handle calls to put the current thread to sleep.

REFACTOR: add initial build support for Visual Studio 2010 and the .NET
          Framework 4.0.  add project files for Visual Studio 2010 Beta 2.

REFACTOR: make constants for the names of native DLLs that we call.

REFACTOR: modify the semantics of SetVariableValue2 to ensure both array and
          scalar variables are setup correctly with respect to the elements
          dictionary prior to the final phase of modifying a variable value.

REFACTOR: update Fossil tool w/source to latest release version 20091111162119.

REFACTOR: *BREAKING CHANGE* update and lock-down all strong-name keys for Eagle.

FEATURE: new [debug lockcmds], [debug lockprocs], and [debug lockvars]
         sub-commands.  these are used to modify the read-only flag of commands,
         procedures, and variables, respectively.

FEATURE: support [do script until test] in addition to [do script while test].

FEATURE: support asynchronous engine operations via new public overloads of
         EvaluateScript, EvaluateFile, SubstituteString, and SubstituteFile.

FEATURE: add get/set/unset operations on logical groups of variables via the new
         GetVariableValues, SetVariableValues, and UnsetVariables Interpreter
         interface methods.

FEATURE: new -initialize command line option is used to immediately initialize
         the script library without entering the interactive loop.

FEATURE: new -postinit command line option is used to evaluate a script after
         the script library has been initialized.  also, the -preinit command
         line option is now restricted to evaluating scripts prior to the script
         library being initialized.

FEATURE: support evaluation of scripts from remote URIs via [source] and the
         command line.  also, added an engine flag to disable this behavior.

************************* Beta 1.0.3599.38186 RELEASE *************************

BUGFIX: fix typos in default host color property definitions.

REFACTOR: internal renaming and cleanup of coding conventions in the method
          overload resolution engine (i.e. FindMethodsAndFixupArguments).

REFACTOR: add missing empty argument to several IHost interface methods.

REFACTOR: add baseline [object invoke] benchmarks.

REFACTOR: revise command line help.

REFACTOR: add new supported build configuration for embedding the primary
          assembly into SQL Server.

FEATURE: add nested member name resolution to [object invoke].  the member name
         argument may now consist of multiple parts separated by a period.  this
         feature simplifies the process of invoking deeply nested members.  the
         -nonested option to [object invoke] has been renamed to -nonestedobject
         and a new -nonestedmember option has been added to allow this new
         feature to be disabled.

FEATURE: add -limit option to [sql execute] to limit the number of rows returned
         by a reader operation.

FEATURE: new [info ensembles] sub-command.  returns all commands that contain
         sub-commands (i.e. ensembles), optionally restricting the results
         based on a pattern.

************************* Beta 1.0.3596.38043 RELEASE *************************

BUGFIX: make the [pwd] command return the current directory using the alternate
        directory separator character, forward slash (COMPAT: Tcl).

BUGFIX: fix and cleanup interactive help for flags related commands.  add
        missing #ntypes interactive command.

BUGFIX: improve PathOps native path handling.

BUGFIX: when deleting the global namespace, make sure that the dirty flag is set
        on deleted variables so that a pending wait on the variable will be
        satisfied.

BUGFIX: make [array exists] semantics match the other [array] sub-commands.

BUGFIX: make [array names] on the global env array honor the matching mode.

BUGFIX: add the missing Tcl sub-commands [array anymore], [array donesearch],
        [array nextelement], and [array startsearch].

BUGFIX: support the test suite files being in a directory unrelated to the
        executable directory (i.e. isolated test suite support).

BUGFIX: prevent built release executables from having the full directory name
        for the PDB files.

BUGFIX: allow variable watches and trace callbacks to modify the variable flags;
        othersise, certain variable operations are impossible to accomplish via
        variable watches and trace callbacks.

BUGFIX: fix PowerShell cmdlet lifecycle issues.  the documentation is unclear;
        however, it seems that the StopProcessing method is called in lieu of
        the EndProcessing method if the operation is canceled.

BUGFIX: make [info exists] work with the global env array.

BUGFIX: catch exceptions when accessing environment variables via the env array.

BUGFIX: return errors when attempting to get or unset nonexistent global env
        array elements.

REFACTOR: modify internal policy interfaces to handle script file policies.

REFACTOR: update Fossil tool w/source to latest release version 20091102131944.

FEATURE: optionally perform string substitution on interactive commands.  this
         feature is disabled by default.  it may be enabled in the shell using
         the interactive #isflags command with a SubstitutionFlags argument
         value that does not evaluate to None.  if any errors occur during the
         substitution process, they will be reported to the console and the
         command itself will not be executed.  substitutions will be silently
         ignored if the interpreter engine flags, interactive or otherwise, are
         set to prohibit them.

FEATURE: new -noexit command line option is used to enter the interactive loop
         instead of exiting the process.

************************* Beta 1.0.3586.00247 RELEASE *************************

BUGFIX: use proper script library paths on Unix platforms.

REFACTOR: support keeping the primary assembly versions synchronized for a given
          release of Eagle.

************************* Beta 1.0.3585.35575 RELEASE *************************

BUGFIX: fix [gets stdin] end-of-line detection on non-Windows platforms.

BUGFIX: add missing test constraints in the files basic.eagle, expr.eagle, and
        function.eagle to allow the test suite to pass cleanly in Tcl 8.4
        through Tcl 8.6.

BUGFIX: simplify the use of language version test constraints and unify some
        tests that relied upon them.

BUGFIX: fix string operators (eq, ne, in, ni, etc) to stop them from converting
        their arguments to a numeric value.

BUGFIX: make core marshaller return success if any matching methods are found
        even if the match limit has not been met.

BUGFIX: avoid superfluously setting the foreground and background colors of the
        console.

BUGFIX: remove hard-coded assumptions in the test suite "we are always running
        inside the Eagle Shell" and "the interactive debugger is always
        available".

BUGFIX: the PowerShell snap-in should be selected by default during setup if a
        PowerShell install is detected.

BUGFIX: fix parsing of negative enumeration values.

BUGFIX: add more runtime guards to prevent scripts from using features that are
        not available on Mono.

BUGFIX: avoid using native stack checking on non-Windows platforms, even if
        support for it has been compiled in.

REFACTOR: first attempt to work around the "console hang" issue on Mono/BSD.

REFACTOR: *HACK* avoid the problematic overloads of the WaitAny/WaitOne methods,
          primarily so that Mono does not crash with MissingMethodException.

REFACTOR: skip changing the Console icon if requested.

REFACTOR: improve diagnostic information for stack overflow conditions.

FEATURE: new -noinvoke option to [object create], [object invoke], etc.  this
         option returns the constructor(s) and/or method(s) that match the given
         name and arguments without actually invoking them.  new -noargs option
         (for use with -noinvoke) that allows all the constructor(s) and/or
         method(s) matching a particular name to be returned without regard to
         the number and types of arguments they require.

************************* Beta 1.0.3581.42932 RELEASE *************************

BUGFIX: make all upvar-tcl tests self-cleaning.

BUGFIX: make [array get], [array names], [array size], and [array unset] work
        with the global env array.

BUGFIX: add missing test suite outputs for better Tcl compatibility.

BUGFIX: prevent usage of waitForProcesses in socket-1.2 test for Tcl.

BUGFIX: the [uri softwareupdates] sub-command will not work on Mono.  therefore,
        it is now disabled for the Mono build.

BUGFIX: prevent Tcl isolated thread tests from running when a non-threaded build
        of Tcl has been loaded.

BUGFIX: fix various errors and omissions in the interactive command help.

BUGFIX: *BREAKING CHANGE* rename [callback queue] to [callback enqueue] and fix
        error message.

REFACTOR: revise interactive #check command.  it now has the capability to
          synchronously download an updated release of the specified type (e.g.
          source, setup, or binary).

REFACTOR: make the evaluation engine callback queue an optional feature, enabled
          by default.

REFACTOR: make it easier to discover the valid options for [object create] and
          [object dispose].

FEATURE: new [uri join] sub-command.  allows URI components to be joined in a
         portable way without validation.

************************* Beta 1.0.3575.24043 RELEASE *************************

BUGFIX: *PERF* fix most of the performance issues caused by having per-thread
        context data.

BUGFIX: handle ShouldContinue exception when using the PowerShell snap-in with a
        non-interactive PowerShell host.

BUGFIX: prevent Engine.ResetReturnCode from attempting to access a null result.

BUGFIX: new [object foreach] sub-command fixes the inability to use managed
        collections that support IEnumerable and do not support random access.

BUGFIX: remove hard-coding of the stdout channel as the constraint detection
        reporting channel for the test suite.

BUGFIX: allow TclWrapper.Find and [tcl find] results to be restricted based on
        version.  this fixes test library-3.1 on systems that have really old
        Tcl libraries (pre-8.4) installed.

BUGFIX: remove usage of Interpreter.GetActive from the _Comparers.Command class.

BUGFIX: findFiles and findFilesRecursive routines need to use [file normalize]
        in both Tcl and Eagle.

BUGFIX: make [file pathtype] work better on non-Windows systems.

BUGFIX: *BREAKING CHANGE* make sure command tokens get removed from the
        appropriate plugin when a command is deleted via [rename], etc.
        unfortunately, this is a breaking change for all commands because an
        extra parameter is required in the call to the constructor.  no more
        changes will be made to the ICommand interface or related semantics
        prior to the final release.

REFACTOR: add experimental support for list representation caching.  reworked
          the interfaces of several internal and external routines to facilitate
          this feature.

REFACTOR: cleanup and clarify parts of Tcl sample.

REFACTOR: *BREAKING CHANGE* cleanup and revise all interface methods for getting
          access to the various entities managed by the interpreter.  this is a
          breaking change for external callers to those methods due to the
          addition of an output parameter.

REFACTOR: revise logic for add and removing sets of commands.  internal
          modularization and cleanup.

************************* Beta 1.0.3560.39191 RELEASE *************************

BUGFIX: allow Tcl commands to be forcibly deleted even if evals are active.

BUGFIX: remove superfluous code from the tclLoad-1.6 test.  also, modify Tcl
        library constraint to check for Tcl version 8.6 or higher (requires
        script cancellation).

BUGFIX: heavily revise locking semantics for the TclWrapper class to improve
        concurrency in multi-threaded scenarios.

FEATURE: new -tcl option to the various object related commands that cause Tcl
         commands to be created in the specified Tcl interpreter that expose the
         underlying functionality of the object.

************************* Beta 1.0.3557.23265 RELEASE *************************

BUGFIX: do not use the new WaitAny method overload when built for the .NET
        Framework 2.0 RTM or Mono (Mono bug #517208).

BUGFIX: work around Mono bug that causes the ManualResetEvent.WaitAny method to
        return the value WAIT_IO_COMPLETION.  the .NET Framework method never
        returns this value and the framework documentation clearly forbids it.

BUGFIX: make [string match] and [string format] argument validation more
        consistent.

BUGFIX: make [parray] line up all the values properly (COMPAT: Tcl).  there is a
        bug in Mono that prevents this from working properly and the old
        behavior is used in that case.

BUGFIX: reset pending cleanup flag after the global namespace has been deleted.

BUGFIX: revise Excel automation tests to check for leftover processes.  please
        note that this may cause these tests to fail occasionally due to subtle
        process timing issues external to Eagle.

BUGFIX: make handling of Interpreter.Create failures correct and consistent.

BUGFIX: do not try to use Windows dynamic loading functions when running on
        Unix even if the binaries are built for Windows.

BUGFIX: add missing type checks for the Version and ReturnCodeList types in
        Variant.IsNumber.

BUGFIX: remove incorrect use of argument list from exponent operator
        implementation.

BUGFIX: correct namespace for TclThreadList and TclThreadDictionary.

BUGFIX: object reference counts should never be automatically reduced for the
        global call frame.

BUGFIX: the [after] command must evaluate scripts in the global namespace.

BUGFIX: by default, the [after] command must not evaluate scripts until the next
        call to [vwait] or [update].

BUGFIX: correct locking semantics in [after enable].

BUGFIX: the Interpreter.AddVariable method must remove leading colons from
        variable names.

BUGFIX: fix a sticky result issue with the #halt interactive command.  This was
        caused by the [debug break] command recycling the previous result into
        the current result.

BUGFIX: make sure all threads are created via Engine.CreateThread.

BUGFIX: expose TclThread.CancelEvaluateNoLock as public until the TclApi
        threading semantics are finalized.

REFACTOR: revise the public Engine.ResetCancel interface (and private interfaces
          such as Engine.ResetHalt and Engine.ResetReturnCode) to set a boolean
          indicator, if any changes were actually made to the interpreter state.

REFACTOR: revise TclSample to allow multiple Tcl forms, one per thread.  Each
          form owns a Tcl interpreter.

FEATURE: new [after flags] sub-command.  this allows the script to specify if
         subsequent after events can be executed immediately or if they must
         wait until the next call to [vwait] or [update].

************************* Beta 1.0.3551.24300 RELEASE *************************

BUGFIX: correct typo that put the ObjectId attribute in the wrong place for the
        Sample.Class1 class.

BUGFIX: revise semantics for native stack checking by the engine and external
        components (e.g. callers to CheckEvents).

BUGFIX: fix issue with non-null Tcl API object being left in the Eagle
        interpreter in some cases of TclWrapper.Load failure.

BUGFIX: skip Tcl interpreter thread checking when the force flag is set in a
        call to TclWrapper.DeleteInterpreter or TclWrapper.Unload.

BUGFIX: allow the Tcl API object for the Eagle interpreter to be initialized
        externally if it has not been set already.

BUGFIX: allow external Tcl interpreters to be used if the TclWrapper flag has
        been enabled for the Eagle interpreter.

BUGFIX: make sure the GetEngineContext, GetInteractiveContext, GetTestContext,
        and GetVariableContext methods do not throw exceptions.

BUGFIX: verify proper thread for disposing Tcl subsystem.

BUGFIX: make Interpreter.MergeArguments handle corner cases better (e.g. allow
        skipping of source and/or target command names).

BUGFIX: make CommonOps.FilterList with an empty input list a NOP.

BUGFIX: pass old procedure to update notification.

BUGFIX: add locks around composite get/modify/set variable operations in
        [append], [lappend], and [lset].

BUGFIX: make TclWrapper error logging more consistent.

BUGFIX: find any event that is ready to be processed.

BUGFIX: fix typo in [open] error message.

BUGFIX: the [open] command can now re-open standard channels.

BUGFIX: add locks around access to the channel dictionary for the interpreter.

BUGFIX: fix CancelThreadStart to check for the Tcl_CancelEval delegate before
        trying to use it.

BUGFIX: give names to created threads.

BUGFIX: fix issue with opaque object handle name formatting.

BUGFIX: always honor the ObjectFlags.NoDispose flag.

BUGFIX: check for each Tcl API function prior to each use.  the intention here
        is that specific features of Tcl may be programmatically disabled.

BUGFIX: make the inclusion of several private containers dependent on Tcl
        support being enabled.

BUGFIX: remove TclObjectType.cs from the library projects because it is
        incomplete and will not be ready for 1.0 RTM.

BUGFIX: check for null name/value arguments to be passed to Tcl variable access
        routines.

BUGFIX: more consistent locking semantics in TclBridge and TclWrapper.

BUGFIX: check the interp argument to TclWrapper.Unload.

BUGFIX: preserve the Tcl interpreter prior to using the Tcl variable access
        routines due to the potential for variable traces.

BUGFIX: be consistent in checking if an Interpreter has been disposed.  also,
        locking style cleanup.

BUGFIX: unique identifiers should be produced even if the interpreter is
        invalid.

BUGFIX: tag DebugOps.Complain output with thread Id.

BUGFIX: fix omission of Policy value from the NotifyType enumeration.

BUGFIX: prevent exception when null value is passed as the text to
        EvaluateScript.

BUGFIX: cleanup per-thread data for an interpreter upon thread exit.

BUGFIX: move SoftwareUpdateCertificateValidationCallback from SecurityOps to
        SocketOps.

BUGFIX: remove all vestiges of non-working support for the .NET Compact
        Framework.  in order to actually make Eagle compile for and run on the
        .NET Compact Framework (or for that matter, on Silverlight), a huge
        development effort would be required for the purpose of porting it (i.e.
        removing quite a few useful features).  unfortunately, a similar effort
        would be required to make Eagle run inside Silverlight (i.e. since it is
        not based on the DLR).

BUGFIX: adjust handling of decimal digit checking to be in strict compliance
        with underlying algorithmic requirements.

BUGFIX: add missing directories to the clean tool.

BUGFIX: use suffix environment variables in the release preparation tool.

BUGFIX: fix typo of TraceInfoForegroundColor in default host.

BUGFIX: slightly better path handling in test prologue.

REFACTOR: in the event of a failure in TclWrapper.Load, delete any created
          interpreter directly instead of ending up doing it during unload via
          the TclWrapper.DeleteInterpreter method.

REFACTOR: cleanup event processing to eliminate redundant object references.

REFACTOR: migrate most usage of the interpreter-specific DebugOps.Complain
          method overload to use the new generic DebugOps.Complain method
          overload instead.  in the future, the interpreter-specific
          DebugOps.Complain method overload will only be used to report errors
          during the failure handling code where the failure actually involves
          an interpreter and the error message cannot reflect the failure,
          because it has already been set to reflect the failure of the
          operation as a whole.

REFACTOR: cleanup and modularize the Tcl/Tk library file name detection and
          parsing logic.  detect Tcl installed as an Eagle package.  add support
          for basekits.

REFACTOR: the TCL_WRAPPER compile define is now enabled by default.

REFACTOR: add compile define EAGLE to the library projects.  this will enable
          code that can be used with or without Eagle to determine if
          those integration features should be included or excluded.

REFACTOR: allow System.Net support to be excluded at compile-time.

REFACTOR: allow System.Console support to be excluded at compile-time.

REFACTOR: skip displaying empty information in the default debugger output (i.e.
          the debugger header) to conserve space on the screen.

FEATURE: allow custom test prologue and epilogue files set via the environment
         variables testPrologue and testEpilogue, respectively, to be evaluated.

FEATURE: new [interp alias], [interp aliases], and [interp bgerror]
         sub-commands.  the semantics of [interp alias] and [interp aliases]
         conform to the Tcl standard for command aliases with some minor
         differences primarily relating to error message text.

FEATURE: allow channel names in [open] and [socket] to be specified.

FEATURE: new [tcl preserve] and [tcl release] sub-commands.

FEATURE: add experimental support for isolated Tcl interpreter threads.

FEATURE: add EvaluateFile and SubstituteFile build tasks.

FEATURE: add asciidigit, asciialpha, and asciialnum types to [string is].

************************* Beta 1.0.3508.07783 RELEASE *************************

BUGFIX: totally removed the CancelInput property of the Interpreter (i.e. the
        way it was being used was basically useless) and revised detection and
        handling of redirected input in the interactive loop.  the bug itself
        can be seen by hitting ctrl-c when no script is being evaluated and
        causes the process to exit.

BUGFIX: fix missing CheckDisposed calls in IsInputRedirected,
        IsOutputRedirected, and IsErrorRedirected.

BUGFIX: fix error handling in IsVariableUndefined.

BUGFIX: check for null PreviousResult in [debug].

BUGFIX: slightly better error messages for [uri].

REFACTOR: switch to using HTTPS for online version checking (currently with a
          self-signed certificate); this is secure because we check that the
          public key of the certificate exactly matches what we expect it to be.

FEATURE: new [debug interactive] sub-command.  this helps alleviate the
         long-standing limitation that [debug break] and other interactive loop
         constructs are prohibited by default in non-interactive shell modes.

************************* Beta 1.0.3497.38353 RELEASE *************************

BUGFIX: prevent superfluous use of the EagleLibraryResGenUnsetReadOnly build
        target.

BUGFIX: do not copy EagleCmdlets to the BuildTasks output directory.

BUGFIX: fix failure of SetupConsole for NOP case when called upon to un-setup
        the console.

BUGFIX: add proper save/restore semantics for the InteractiveThread property of
        the interpreter in the interactive loop.

BUGFIX: properly lock access to interpreter processEvents flag from [vwait].

BUGFIX: fix launching of nested shells when running on Mono (primarily for the
        test suite).

BUGFIX: the background error handler should be changeable per-interpreter.

BUGFIX: remove the useless termOffset field from Interpreter.

BUGFIX: fix confusion about which pieces of private data in Interpreter are
        logically per-thread.

REFACTOR: *MAJOR* cleanup and reorganization of all private data in Interpreter.

REFACTOR: expose Tcl wrapper functionality if TCL_WRAPPER is defined.

FEATURE: add support for standard mode (where all non-standard commands are
         hidden).  in this context, a non-standard command is one that is not
         available in Tcl 8.4, 8.5, or 8.6 (i.e. it is specific to Eagle).

FEATURE: add getColumnValue/getRowColumnValue helper procedures to the script
         library.

FEATURE: add naive filter/map/reduce helper procedures to script library.

************************* Beta 1.0.3441.01503 RELEASE *************************

BUGFIX: add more I/O tests.  fix incorrect and failing tests io-1.2 and io-1.4
        due to using the wrong overloads of channel.Read() in [fcopy].

BUGFIX: revise and cleanup test suite summary handling.  report the overall
        result (i.e. the interp exitCode) based on the specified test pass
        threshold, if any.

BUGFIX: make sure that Tcl can run all the socket tests.

BUGFIX: correct unnecessary exposure of initializeTests to Tcl.

BUGFIX: correct failing test function-3.1 on Mono due to srand() result
        checking.

BUGFIX: correct multiple failing tests on CLR 4 due to overly strict version
        checking.

************************* Beta 1.0.3438.42186 RELEASE *************************

BUGFIX: replace the misuse of Engine.HasNoWatch in ProcessOps with
        Engine.HasNoEvent.

BUGFIX: fix duplicate ObjectId attribute values.

BUGFIX: by default, disable use of the soon to be deprecated CAS policy APIs
        (CLR 4).

BUGFIX: simplify checks for null encoding in [gets], [puts], and [read].

BUGFIX: make sure that the test suite sets the ExitCode to non-zero if any of
        the specified tests fail.

BUGFIX: fix check for the SignCode tool in the Authenticode build target.

BUGFIX: add EagleCmdlets target to the sign batch tool.

BUGFIX: adjust verbose descriptions of PowerShell cmdlet actions.

BUGFIX: skip building EagleCmdlets project if the necessary reference assembly
        System.Management.Automation is not present.

FEATURE: new [fcopy] command; the -command option from Tcl is not implemented.

FEATURE: allow PowerShell snap-in to be installed (optionally) from the setup.

************************* Beta 1.0.3434.03009 RELEASE *************************

BUGFIX: fix unintended limitations on the use of the ApplicationObject and
        UserObject properties of the interpreter object during its creation.

BUGFIX: custom build task interpreter should have strict auto-path option set.

BUGFIX: *BREAKING CHANGE* rename Strings class in the Eagle._Constants namespace
        to _String for consistency.

FEATURE: implement cmdlets and a snap-in for use with PowerShell.

************************* Beta 1.0.3432.35303 RELEASE *************************

BUGFIX: fix issue with exponentiation operator and numeric values that end up
        with the decimal type.  added more tests.

************************* Beta 1.0.3431.42578 RELEASE *************************

BUGFIX: include executable name in the test log.  add support for tagging the
        test log file name by build variant, etc.

BUGFIX: preserve DateTime and StringList values while evaluating an expression.

REFACTOR: modify how the expression engine handles operators and how functions
          and operators are added to the interpreter.  add FunctionFlags to the
          public IFunction interface.  add OperatorFlags to the private
          IOperator interface.

************************* Beta 1.0.3426.35077 RELEASE *************************

BUGFIX: fix [proc] to remove leading colons from the procedure names.

BUGFIX: add [package unknown] support to implement CodePlex feature #2986.

************************* Beta 1.0.3414.39083 RELEASE *************************

BUGFIX: correct failing test library-3.2 to use the file name of the Tcl library
        that it also loads via [tcl load] for [library load].

BUGFIX: allow variable watches and asynchronous event processing to be skipped
        when evaluating a script.

BUGFIX: fix the Tcl auto-selection algorithm to select a higher version even if
        the debug configuration does not match.

************************* Beta 1.0.3405.26077 RELEASE *************************

BUGFIX: fix test tclSubst-1.1 failing due to tests library-3.1 and library-3.2
        removing the Tcl binary directory from the search path even if they did
        not actually add it; modified the script library routines addToPath and
        removeFromPath to return non-zero if they actually alter the search path
        to facilitate this fix.

BUGFIX: fix usage of the interpreter Interactive property in some tests.  add
        missing test description to test debug-1.1 and add clarifying comments
        to test delayOut-1.1.

BUGFIX: allow opaque object handle names to be used in Type option values (e.g.
        in the -parametertypes option to [object create] and [object invoke]).

BUGFIX: add build targets and infrastructure to remove read-only attributes on
        source files that may need to be regenerated during the build process.

************************* Beta 1.0.3399.29054 RELEASE *************************

BUGFIX: *PERF* in the expression parser, do not switch on the operator name.

BUGFIX: fix [exec] to set ::errorInfo upon a non-zero exit status of the child
        process (COMPAT: Tcl).

BUGFIX: fix [global] and [variable] handling inside a linked call frame.

BUGFIX: fix usage of CurrentFrame where it was incorrectly assuming that it
        could not be a linked call frame (i.e. a frame with no variables).

BUGFIX: fix [package require] version comparisons (now non-exact by default).

REFACTOR: modify Example to demonstrate custom command execution policies and
          how to use the interactive loop.

REFACTOR: preliminary support for tracking source line numbers in the script and
          expression parsers.

************************* Beta 1.0.3393.01573 RELEASE *************************

BUGFIX: properly handle redirected input (special thanks to Matthew Wilson).

BUGFIX: lock read access to interpreter fields in default host.

BUGFIX: cleanup and add missing interpreter fields to default host information
        displays.

BUGFIX: when resolving member arguments, we do NOT want to try to interpret the
        argument value as an array variable name is they provided us an actual
        string and the destination type is a character array.

REFACTOR: also process environment variable options in test shell.

************************* Beta 1.0.3390.39648 RELEASE *************************

BUGFIX: bump stack safety margin to 384K/768K on x86/x64.

BUGFIX: also search for script library relative to application binary.

BUGFIX: do not show full debugger display for breakpoints and variable watches
        unless the default debugger flags have been overridden by the user.

REFACTOR: output a debug trace when a native stack overflow is detected.

REFACTOR: revise Authenticode signing build integration.

************************* Beta 1.0.3383.21041 RELEASE *************************

BUGFIX: fix possible uncaught stack overflow issues in parser by tracking parser
        nesting levels and triggering a native stack check if necessary and
        enabled.

BUGFIX: make extra build tasks capable of being disabled.

REFACTOR: remove ResetResult call in EvaluateTokens, it should no longer be
          needed.

************************* Beta 1.0.3375.38602 RELEASE *************************

BUGFIX: add missing NotifyType check to CheckNotifications.

BUGFIX: correct FormatOps.MethodName to return a non-decorated name; callers
        that need decorated names must use FormatOps.MethodOverload.

BUGFIX: do not change the Initialized property of an IPlugin inside AddCommands
        and RemoveCommands.

BUGFIX: correct policy name construction and handling.

REFACTOR: expose interpreter basic policy API.

REFACTOR: make PathDictionary container public.

************************* Beta 1.0.3363.28976 RELEASE *************************

BUGFIX: add missing monoBug constraint to fileIO-2.2.

BUGFIX: SendMessage / PostMessage need to be CharSet = Auto.

BUGFIX: remove some useless variable declarations in Unix builds.

BUGFIX: update CodePlex URL.

************************* Beta 1.0.3362.22704 RELEASE *************************

BUGFIX: correct usage error message for [unset].

BUGFIX: correct multi-threaded call frame management.

BUGFIX: fix race condition for globals, vars, and locals sub-commands of [info]
        and the [debug watch] sub-command.

BUGFIX: fix test object-98.2 result (make insensitive to hash table ordering).

BUGFIX: for Mono build, do not use new SP2 overload of ManualResetEvent.WaitOne.

BUGFIX: constrain some fileIO tests based on platform.

************************* Beta 1.0.3348.06228 RELEASE *************************

BUGFIX: revise test usage of the Result.op_Implicit method.

BUGFIX: fix error message(s) for Value methods and simplify error handling
        logic.

BUGFIX: fix Console.GetSize method to return buffer size, not window size.

BUGFIX: fix argument checking for WriteBox.  make sure list is valid and check
        screen bounds so that we will not fall off the bottom of the console
        window.

BUGFIX: made testing of WriteBox more stringent and correct.

BUGFIX: fix error handling semantics for [host color] and [host position]
        sub-commands.

BUGFIX: rename [tailcall] to [callback] because they were not true tailcalls.
        converted to an ensemble.

FEATURE: new [host reset], [host size], [host boxstyle], [host outputstyle], and
         [host writebox] sub-commands (primarily for testing the console output
         subsystem).

************************* Beta 1.0.3344.10975 RELEASE *************************

BUGFIX: add protocol stream translation to guarantee cr/lf end-of-line output
        sequences regardless of the end-of-line sequences present in the output
        from [puts] (e.g. for Internet protocols).

BUGFIX: allow command history to be bypassed at the C# level.

REFACTOR: revise core marshaller to be more flexible and to provide more
          accurate error messages.

************************* Beta 1.0.3342.22280 RELEASE *************************

BUGFIX: wrap stray use of remoting in #if REMOTING.

BUGFIX: fix [clock format] for blank or entirely whitespace formats.

BUGFIX: fix command line pre-processing for interactive-mode.

BUGFIX: fix call frame argument handling for lambda expressions.

BUGFIX: correct passing a StringList to the ArgumentList constructor.

BUGFIX: adding formal arguments for scope creation inside of apply needs to skip
        the lambda expression.

BUGFIX: correct initialization semantics for Tcl "safe" interpreters.

BUGFIX: add missing version-specific Mono test constraints when running in Tcl.

BUGFIX: correct appendArgs with no arguments.

BUGFIX: modularize and correct logic for importing package commands into the Tcl
        global namespace.

BUGFIX: correct quirky test package detection logic in the test suite.

BUGFIX: fix isolated socket client test to enable run-in-Tcl support.

BUGFIX: update all Mono test constraints to take into account issues that have
        been fixed for Mono 2.4.

BUGFIX: make server sockets more robust and work around the ExclusiveAddressUse
        exception issue on Mono 2.0/2.2 and Mono on Unix.

BUGFIX: fix sql test case for Mono 2.2+.

BUGFIX: fix shared log file handling by selectively emulating Tcl's file sharing
        semantics.

REFACTOR: *SECURITY* the file association added by setup now uses "safe" mode.
          this means that simple double-clicking a script file which contains
          any commands not marked as "safe" will fail with an error message.

REFACTOR: streamline and expose "safe" interpreter handling via the shell.

REFACTOR: extract and add method for adding object aliases.

FEATURE: add -alias option to [tcl create] for simpler Tcl script evaluation.

************************* Beta 1.0.3339.05242 RELEASE *************************

BUGFIX: add build dependency on the script library files to the
        EagleLibraryResGen target.

BUGFIX: fix reference counts for opaque object handles returned from a procedure
        (with or without using an intermediate variable).  opaque object handles
        used in this way must be explicitly disposed because an extra reference
        is added when the procedure returns to prevent it from being disposed
        when the call frame is popped.  the exact behavior is subject to change
        in future releases; however, explicitly disposing an opaque object
        handle is the preferred way of cleaning up objects, especially those
        that implement IDisposable.

BUGFIX: allow compilation to specifically target .NET Framework 2.0 RTM (i.e.
        prevent features introduced in later service packs from being used).

BUGFIX: make sure to reverse any path modifications made in the library3 test so
        that it does not affect the tcl-subst test.

BUGFIX: make sure we can find init script even if the base directory name
        matches the name of the build configuration (e.g. Debug).

BUGFIX: do not strip blank lines entered during a multi-line interactive
        command.

REFACTOR: revise how native console handles are queried and used.

FEATURE: add compileCSharp script library procedure for easily compiling C# code
         from a script.  added tests.

FEATURE: new [object refcount] sub-command.  this is primarily for testing
         purposes and may be removed in a future release.

FEATURE: new [host mode] sub-command.

************************* Beta 1.0.3335.35607 RELEASE *************************

BUGFIX: tests should remove object namespaces they import.

BUGFIX: add support and tests for server sockets.

BUGFIX: correct synchronization in TclApi.

BUGFIX: correct DoOneEvent/Unload issues (e.g. Tcl_Exit) in TclWrapper.

BUGFIX: add missing monoBug constraint to fileIO-1.11.

BUGFIX: do not skip monoBug/monoCrash tests in Tcl.

BUGFIX: use -nocomplain when unsetting variables outside of tests.

BUGFIX: add null checks to SubCommandPolicy/DirectoryPolicy.

BUGFIX: add native threadId to the interpreter at creation time.

BUGFIX: correct threadId tests in TclApi (Tcl is bound to native threads, not
        managed).

REFACTOR: add notification for engine command execution.

FEATURE: add support for command history tracking.

************************* Beta 1.0.3325.09846 RELEASE *************************

BUGFIX: build/release tool fixes.

BUGFIX: fix [file dirname] for invalid paths and paths that represent the root
        of the drive.

BUGFIX: correct loading semantics for the console settings file.

BUGFIX: correct and expand file-io tests to cover different encodings.

BUGFIX: correct buggy global-upvar test.

BUGFIX: correct locale-sensitivity in object2 test.

************************* Beta 1.0.3323.06882 RELEASE *************************

BUGFIX: *PERF* fix performance regression caused by removing usage of fast mode
        for getting enum names/values.

BUGFIX: fix buggy [string map] argument counting.  fix use of -maximum, added
        tests.

BUGFIX: enable hack for native stack checking on x64 due to lack of NtCurrentTeb
        export in NTDLL.

BUGFIX: write all temporary test files to $env(TEMP).

BUGFIX: do not try to load 32-bit Tcl DLLs when running as a 64-bit process.

BUGFIX: correct locale-sensitive date/time checking in tests.

BUGFIX: work around interpreter disposal race condition on Mono.

REFACTOR: change internals of the PolicyData mechanism.

************************* Beta 1.0.3321.08911 RELEASE *************************

BUGFIX: correct retry semantics for getting enum names/values.  disable fast
        mode for now as it is not 100% stable.  correct error message semantics.

BUGFIX: added protection against using Tcl interpreters and/or objects on the
        wrong thread.

BUGFIX: correct usage of IDisposable.  All IDisposable objects now call
        CheckDisposed for every public member.

BUGFIX: give error on invalid options to [regsub].

BUGFIX: call frame flag matching semantics.

BUGFIX: do not return hidden commands and procedures via [info].

BUGFIX: result handling in GetStartupFileName and GetScript.

BUGFIX: fix [file attributes] command for reading single option.

BUGFIX: work around bug in Mono Binder implementation.

BUGFIX: correct AssemblyUri attribute handling for plugins.

BUGFIX: correct quoting of text in scripted parser access, adjust tests.

BUGFIX: cleanup object disposal code/options to be more correct and consistent.

BUGFIX: fix premature disposal of console resources.

BUGFIX: fix etranenous case in TranslateRegSubSpec.

REFACTOR: modularize and granularize interpreter creation options.

REFACTOR: increase consistency with bad value/option handling.

REFACTOR: allow support for Tcl stardlls to be disabled at compile-time.

REFACTOR: skip changing the Console title if requested.

REFACTOR: flag all commands as either "safe" or "unsafe".  preliminary support
          for "safe" interpreters and host policies implemented in managed code
          to allow hidden commands to be executed.

************************* Beta 1.0.3315.03693 RELEASE *************************

BUGFIX: fix missing NotifyTypes from status display.

BUGFIX: make NativeOps.LoadLibrary via dlopen() work on more platforms (e.g.
        OpenBSD), this time with feeling.

BUGFIX: better error reporting for dynamic loading related errors.

************************* Beta 1.0.3314.36410 RELEASE *************************

BUGFIX: SingleFile build needs to allow for embedding packages in the library
        (e.g. EagleTest).  Refactored package management subsystem to be more
        uniform and robust given this requirement.

BUGFIX: make NativeOps.LoadLibrary via dlopen() work on more platforms (e.g.
        OpenBSD).

BUGFIX: add test constraints for optional commands.

BUGFIX: add test constraint that detects non-working dlopen().

BUGFIX: force stack size calculation when entering interactive loop.

BUGFIX: fix some unit tests to be skipped on Tcl 8.6 (error message formatting).

BUGFIX: fix [update] on Unix.

REFACTOR: new public interface IEvent.

REFACTOR: *BREAKING CHANGE* changed how the notifier handles notification flags.
          notifications are now divided into types (NotifyType) and sub-types
          (NotifyFlags).  this is potentially a breaking change for any plugins
          that currently implement the INotify interface; however, I am not
          aware of any third-party plugins that currently do this.  the
          rationale behind this change is simple, not enough event types could
          be represented in the previous setup and the whole point of
          notifications is that they are fine-grained.

************************* Beta 1.0.3312.40289 RELEASE *************************

BUGFIX: *PERF* reduce the number of native stack checks.

BUGFIX: *PERF* perform type conversions without throwing exceptions.

BUGFIX: *PERF* perform integer value range checks/conversions without throwing
        exceptions.

BUGFIX: incorrect escaping of pipe character in batch file tools.

BUGFIX: insufficient parameter validation in batch file tools.

BUGFIX: log test results in Tcl as well as Eagle.

BUGFIX: incorrect interpretation of [sql] parameter values as characters.

BUGFIX: incorrect entry point definition for SetErrorLevel tool.

BUGFIX: incorrect string-to-integer function for SetErrorLevel tool.

BUGFIX: [string format] for values that are bigger than a byte and smaller than
        a character.

BUGFIX: encoding reform, added custom TwoByte encoding for plugins that need to
        support Unicode character values that are invalid in UTF-16 (i.e.
        0xD800 to 0xDBFF and 0xDC00 to 0xDFFF).

BUGFIX: correct ArrayOps to use generics.

BUGFIX: correct build for .NET Framework 2.0 pre-SP2.

BUGFIX: allow [subst] to be properly canceled.

BUGFIX: prevent InvalidOperationException when Debug environment variable is
        used and the Console input is redirected.

BUGFIX: make argument quoting and ERRORLEVEL handling in batch tools more
        consistent.

BUGFIX: correct platform name for non-Windows builds.

BUGFIX: fix [info] sub-commands to be more consistent.

BUGFIX: make runtime detection more correct and consistent.

BUGFIX: correct engine fetching of errorInfo and errorCode to include the
        GlobalOnly flag.

BUGFIX: correct interactive flag management in interactive loop.

BUGFIX: correct incorrect regexp matching in some tests, Mono constraints.

BUGFIX: correct enum parsing on Mono in non-Mono builds.

BUGFIX: correct [file list] error handling.

BUGFIX: fix Tcl library search semantics for FreeBSD / OpenBSD.

BUGFIX: fragile overload resolution, make the marshaller optionally accept a
        list of parameter types to resolve any ambiguities.

BUGFIX: correct support for TIP #336 (Tcl_Get/SetErrorLine).

BUGFIX: detect and correct case where the Tcl library is unloaded out from
        underneath the interpreter.

BUGFIX: acquire and hold lock while processing command deletion callbacks from
        Tcl.

BUGFIX: do not always display array elements and links for #vinfo.

BUGFIX: fix disposing bridged Tcl command objects (test tclLoad-1.2 GC race).

BUGFIX: target condition cleanup for build targets.

BUGFIX: cleanup all files copied by custom build targets.

BUGFIX: properly support selectively running/skipping certain test files and/or
        names.

REFACTOR: miscellaneous internal changes.

FEATURE: check for updated versions via interactive #check command.

FEATURE: new [uri download] sub-command.

FEATURE: new [file tempname] sub-command.

FEATURE: new [info whitespace] sub-command.

************************* Beta 1.0.3304.19486 RELEASE *************************

BUGFIX: *PERF* parse enum values without throwing any exceptions.

BUGFIX: fix enum parsing of flag options on Mono.

BUGFIX: test constraint cleanup (mono, windows, interactive, performance).

BUGFIX: allow [file delete] to recursively remove directories.

************************* Beta 1.0.3301.37337 RELEASE *************************

BUGFIX: cleanup and correct shell command line usage information.

BUGFIX: make evaluations keep track of their error line number.

BUGFIX: make build targets check for required tool files.

BUGFIX: make clean tool delete test log files on Mono.

BUGFIX: add TIP #148 related constraints for tests list-1.[1-4].

BUGFIX: escape curly braces in test results that use regexp matching.

BUGFIX: disable tests on Mono that are .NET Framework specific.

BUGFIX: disable tests object-7.1 and object-10.1 on Mono due to crashes.

BUGFIX: make [file tail] handle an empty string gracefully.

BUGFIX: allow options to declare that conversions from string to System.Type or
        type lists should be case-insensitive.

BUGFIX: disable verbose mode for conversions from string to System.Type.

BUGFIX: allow test debug-3.1 to work with standard stack sizes.

BUGFIX: add missing embedded test package to the test project.

BUGFIX: make tests object-12.1 and object-12.2 pass on Mono (i.e. do not rely on
        reflection member ordering).

BUGFIX: make test tclLoad-1.2 complain quietly (i.e. this test expects to cause
        a complaint; however, it should not block).

FEATURE: make update tool copy test suite files.

FEATURE: add interactive #test command to shell to run the test suite or a
         subset thereof.

FEATURE: add runtime detection of the framework (e.g. Mono or .NET) and the
         version thereof (e.g. 2.0, 2.2, 4.0, etc).

FEATURE: add Quiet property to Interpreter.  non-zero prevents complaints from
         being presented to the user via IHost or a modal dialog box.

FEATURE: add -verbose option to [object], [sql], and [xml] sub-commands to
         enable detailed error reporting for type searches.

FEATURE: add build target to run the shell.

FEATURE: add build target to run the test suite.

************************* Beta 1.0.3299.00874 RELEASE *************************

BUGFIX: fix [string map] with empty mapping list.

BUGFIX: fix utf8/unicode encoding issues in Tcl wrapper.

BUGFIX: fix potential race conditions for tclApi object with locking.

BUGFIX: fix removal of variable links that refer to variables in an undefined
        call frame.

BUGFIX: correct error information preservation semantics for try/finally.

BUGFIX: properly save/restore the interpreter engine flags for nested
        interactive loops.

BUGFIX: allow unsetting of the entire env array.

BUGFIX: leading :: specifiers for variable pattern matching.

BUGFIX: major re-factoring of call frame semantics (COMPAT: Tcl).

BUGFIX: all public containers now have custom ToString methods.

BUGFIX: upvar to an array element now works.

BUGFIX: unset -nocomplain should never raise an error.

BUGFIX: uplevel argument handling.

BUGFIX: AddVariable handling of undefined, yet existing variable in call frame.

BUGFIX: array set handling of pre-existing variables.

BUGFIX: info globals did not return Tcl compatible results (include defined
        links to undefined variables).

BUGFIX: robustify internal list building and filtering operations.

BUGFIX: allow re-targeting of variable links (COMPAT: Tcl).

BUGFIX: properly dispose referenced modules of NativeDelegate.

BUGFIX: make sure null variables are not counted as defined by
        DoesVariableExist.

BUGFIX: make sure error messages are presented for attempting to unset/reset/get
        an undefined variable.

BUGFIX: when re-using an existing undefined array variable as a scalar, make
        sure to unflag it as an array.

BUGFIX: force lappend to honor variable traces.

BUGFIX: core marshaller was not matching property method names correctly.

BUGFIX: properly add custom errorInfo in error command.

BUGFIX: prevent catch command from messing up custom set errorInfo.

BUGFIX: file dirname now properly returns "." for file names with no directory
        information.

BUGFIX: fix closing and re-opening the console host, must re-setup.

BUGFIX: properly use implicit/explicit conversion operators for ByRef types.

BUGFIX: when cleaning up call frames, we cannot remove linked variables that
        link to the same call frame (exception).

BUGFIX: remove final end-of-line character when reading entire stream with
        -nonewline.

BUGFIX: correct end-of-line handling for files read via [source].

BUGFIX: fix off-by-one condition in [string range].

BUGFIX: fix server object disposal issue in remoting test code.

BUGFIX: fix security restrictions issue with remoting server test method(s).

BUGFIX: fix end-of-stream detection for network streams (i.e. [read] command).

BUGFIX: fix [source] for files with the Macintosh end-of-line sequence.

BUGFIX: sample project assemblies must be signed to load properly.

BUGFIX: properly marshal byte array values in rows returned from [sql].

REFACTOR: carefully change how undefined variables are handled as they
          transition from scalar to array or vice-versa.

REFACTOR: remove [interp alias] of Tcl test suite compatibility routines and use
          namespace export/import instead.

REFACTOR: [debug result] outputs unformatted text and omits trailing newlines.

REFACTOR: totally refactor entire test suite functionality, make fully Tcl
          compatible.

REFACTOR: change all uplevel/upvar related tests to use new functionality.

REFACTOR: add test file all.eagle, which will eventually contain all Eagle
          tests.

REFACTOR: change all tests to use the test suite (pending).

REFACTOR: forbid direct use of Complain that takes an IHost.

REFACTOR: naming police for format strings.

REFACTOR: call frames now have a unique frame Id.

REFACTOR: call frames may now be marked with arbitrary name/value pairs.

REFACTOR: variables now have a link index, which refers to the element of a
          linked array.

REFACTOR: major changes to level references (also Interpreter --> Value).

REFACTOR: all non-variable related call frames are now marked as such.

REFACTOR: call frames are now marked as invisible when necessary (i.e. uplevel).

REFACTOR: change call frame index and level interface members to long.

REFACTOR: call frames now support ToList() semantics.

REFACTOR: revise [read] to always use channel.Read().

FEATURE: new -purge option to [unset] to force purge of undefined variables from
         the call frame.

FEATURE: new EagleRunTests compile-time property to run the full test suite when
         building the shell project.

FEATURE: add support for case-insensitive options.

FEATURE: allow, through the usage of ##<integer> notation, traversal of all
         call frames, including invisible ones.  This feature is not supported
         by Tcl.

FEATURE: new icommand, iresult, restore, and variable [debug] sub-commands added
         to correct some minor functionality gaps.

FEATURE: new Interpreter public API RestoreCommands to restore commands in the
         core command set currently missing from the interpreter.

FEATURE: new [tcl select] sub-command added.  used to return the preferred
         locally installed Tcl build without loading it.

FEATURE: new -exitCode, -noCase, -noData, and -noExit options for [test2]
         command.  these enable various special case test scenarios.

FEATURE: new -nocase and -match options for [unload].

************************* Beta 1.0.3285.13304 RELEASE *************************

BEGIN: ChangeLog.