Skip to content

Commit

Permalink
Update to the beta 55 sources.
Browse files Browse the repository at this point in the history
  • Loading branch information
mistachkin committed Aug 15, 2024
1 parent 618cefd commit 0deef05
Show file tree
Hide file tree
Showing 389 changed files with 33,989 additions and 12,041 deletions.
10 changes: 5 additions & 5 deletions Build/Components/Private/PatchLevel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,31 +20,31 @@
///////////////////////////////////////////////////////////////////////////////

#if PATCHLEVEL
[assembly: AssemblyVersion("1.0.8613.27347")]
[assembly: AssemblyVersion("1.0.8734.30319")]
#endif

///////////////////////////////////////////////////////////////////////////////

#if ASSEMBLY_DATETIME
[assembly: AssemblyDateTime("2023.11.30T00:00:00.000 +0000")]
[assembly: AssemblyDateTime("2024.07.20T00:00:00.000 +0000")]
#endif

///////////////////////////////////////////////////////////////////////////////

#if ASSEMBLY_RELEASE
[assembly: AssemblyRelease("Fire Dragon Series, Beta 54")]
[assembly: AssemblyRelease("Fire DRAGON Series, Beta 55")]
#endif

///////////////////////////////////////////////////////////////////////////////

#if SOURCE_ID
[assembly: AssemblySourceId("687511caf5977ca1c8261dba4d77e6bbcf444161")]
[assembly: AssemblySourceId("29187b7247d15136ccc8142f89e70b0406be61cf")]
#endif

///////////////////////////////////////////////////////////////////////////////

#if SOURCE_TIMESTAMP
[assembly: AssemblySourceTimeStamp("2024-02-29 17:27:11 UTC")]
[assembly: AssemblySourceTimeStamp("2024-08-13 17:22:12 UTC")]
#endif

///////////////////////////////////////////////////////////////////////////////
Expand Down
2 changes: 1 addition & 1 deletion Build/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@

[assembly: AssemblyTag("beta")]
[assembly: AssemblyLicense(License.Summary, License.Text)]
[assembly: AssemblyUri("https://eagle.to/")]
[assembly: AssemblyUri("https://urn.to/r/eagle")]
151 changes: 151 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,157 @@

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

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

BUGFIX: when the Interpreter.GetStartup method calls the HostOps.GetScript
method, it must make sure to propagate the resulting script flags
to the caller.

BUGFIX: pending variable traces on the current thread should not cause nested
variable traces to be skipped, e.g. trace write for ::errorInfo while
dealing with ::auto_path changes.

BUGFIX: skip all undefined variables when copying into the final settings list
for callers to the ScriptOps.LoadSettingsViaFile method.

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: stop direct assignments of the context engine flags during procedure
execution; this was preventing any procedure from changing the flags
within the engine context in such a way that they would persist after
it returns. instead, each non-saved context engine flags bit must be
backed out.

BUGFIX: *MAJOR* nested use of the [upvar] command against the same variable
must follow existing links for the other variable prior to setting up
the new link.

BUGFIX: *MAJOR* fix event queue handling so that higher priority events that
should happen in the future do not prevent lower priority events that
should happen right now.

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: heavily fortify network related methods against transient errors.

REFACTOR: add preliminary support for the .NET 9.0 runtime.

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.

REFACTOR: *BREAKING CHANGE* add UseForce property to the IHost and IHostData
interfaces and add a UseForce flag to the CreateFlags enumeration.
also, support the UseForce environment variable.

REFACTOR: *BREAKING CHANGE* remove excess bool parameters from methods of the
ITclEntityManager interface.

FEATURE: add the [debug null] and [debug result] sub-commands for test use.

FEATURE: make the message argument to the [error] command optional. when not
specified, the last script error on the current thread will be used.

FEATURE: add -nopreviousprocessid option to the [exec] command.

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

FEATURE: add -changed option to the [sql execute] sub-command. this will be
used to hook the Changed event on the connection type -OR- instance,
if applicable.

FEATURE: add TestCommands environment variable, which can be used to forcibly
add all test commands to all created interpreters.

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: add support for automatically loading package index files from the
directory containing a script file being evaluated. please note
that this only applies to package index files in the same directory
as the script file being evaluated -AND- having a file name matching
the regular expression "^pkgIndex_([0-9A-F]{16})\.eagle$". Standard
package index files are excluded, i.e. those named "pkgIndex.eagle".

FEATURE: add the -bridge, -noforcedelete, and -nocomplain options to the
[tcl load] sub-command.

FEATURE: add -trustedonly and -maybetrustedonly options to the [library load]
sub-command.

FEATURE: add -maybeverifiedonly option to the [load] command and [object load]
sub-command.

FEATURE: *MAJOR* Add Tetris. Why? Because I wanted it. Hi Jeff, and thanks
for the code.

FEATURE: *BREAKING CHANGE* rename the ResultStack environment variable to
PopulateResultStack -AND- add the IncludeResultStack environment
variable to force inclusion of all stack trace information when
converting to a string.

FEATURE: *BREAKING CHANGE* rename the -trusted option to various the [tcl]
sub-commands to -trustedonly and add the -maybetrustedonly option.

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.

FEATURE: *BREAKING CHANGE* add LockCallback property to IInterpreter interface.

FEATURE: *BREAKING CHANGE* add two boolean output parameters to WaitVariable
method of the IVariableManager 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.
Expand Down
2 changes: 1 addition & 1 deletion Eagle.url
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
[InternetShortcut]
URL=https://eagle.to/
URL=https://urn.to/r/eagle
2 changes: 1 addition & 1 deletion Example/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@

[assembly: AssemblyTag("EXAMPLE")]
[assembly: AssemblyLicense(License.Summary, License.Text)]
[assembly: AssemblyUri("https://eagle.to/")]
[assembly: AssemblyUri("https://urn.to/r/eagle")]
2 changes: 1 addition & 1 deletion Example/Scripts/ex_debugger.eagle
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@

debug icommand #show
debug iqueue #show
2 changes: 1 addition & 1 deletion Example/Scripts/ex_debugger3.eagle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

set x 9

debug watch x +breakonany
debug watch x +BreakOnAny

incr x; # 10
67 changes: 54 additions & 13 deletions Example/Scripts/ex_tcl.eagle
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,55 @@
# #
# 4. All trailing spaces have been removed. #
# #
# 5. The block size has been multiplied by three. #
# #
################################################################
# #
# These are the SHA1 hashes: #
# #
# original -- 42d6a1620b6ce2626ffe54256297cb050de58caa #
# modified -- 443fd98648c091ade327b87aabd01a93be04b928 #
# modified -- 1628cd7af0b4a47699f1d99c70dde222fa725e99 #
# #
################################################################

set path [file normalize [file dirname [info script]]]

if {![tcl ready]} then {
#
# HACK: Avoid using any ActiveTcl "BaseKits" here in case they
# do not embed Tk correctly. Also, make sure the Win32
# SetDllDirectory API gets called prior to attempting to
# load the native Tcl library; otherwise, the inability
# of "tcl*.dll" to load "zlib1.dll" could cause issues.
# HACK: Avoid using any ActiveTcl "BaseKits" here in
# case they do not embed Tk correctly. Also,
# make sure the Win32 SetDllDirectory API gets
# called prior to attempting to load the native
# Tcl library; otherwise, the inability of the
# "tcl*.dll" library to locate the "zlib1.dll"
# library could cause issues.
#
# HACK: The minimum version that should be used here
# is 8.6, due to its support for TIP #285, e.g.
# [interp cancel], et al. Also, do not bother
# using Tcl 9.x, which is broken by design.
#
tcl load -findflags -OtherNamePatternList -loadflags +SetDllDirectory
tcl load -maybetrustedonly -bridge -robustify \
-minimumversion 8.6 -maximumversion 8.9

set loaded 1
}

tcl set [tcl primary] path $path
################################################################

tcl set [tcl primary] ::path $path

################################################################

if {[catch {
tcl eval [tcl primary] {
set argv {}
if {[info exists ::argv]} then {
set ::savedArgv $::argv
} else {
unset -nocomplain ::savedArgv
}
set ::argv [list]
rename exit __exit
proc exit { args } {
set ai [after info]
if {[llength $ai] > 0} then {
Expand All @@ -59,12 +80,32 @@ if {[catch {
}
package require Tk; # may error, no Tk?
wm protocol . WM_DELETE_WINDOW exit
source [file join $path tetris.tcl]
after 0 list; vwait forever; unset -nocomplain forever
source [file join $::path tetris.tcl]; unset ::path
after 0 list; vwait ::forever
}
} error] != 0} then {
puts stdout [appendArgs "Tcl error: " $error]
puts stdout [appendArgs "Tcl setup error: " $error]
}

################################################################

if {[catch {
tcl eval [tcl primary] {
unset -nocomplain ::forever
rename exit ""; rename __exit exit
if {[info exists ::savedArgv]} then {
set ::argv $::savedArgv
} else {
unset -nocomplain ::argv
}
unset -nocomplain ::savedArgv
}
} error] != 0} then {
puts stdout [appendArgs "Tcl cleanup error: " $error]
}

################################################################

unset -nocomplain error
if {[info exists loaded] && $loaded} then {tcl unload}
unset -nocomplain error loaded path
unset -nocomplain loaded
2 changes: 1 addition & 1 deletion Example/Scripts/ex_winForms.eagle
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ proc centerButton {} {
object load -import System.Windows.Forms
set form [object create -alias Form]

$form Text "[info engine] Test Form Title"
$form Text "[info engine] Test 'ex_winForms.eagle' Form Title"
$form TopMost true
$form Show

Expand Down
Loading

0 comments on commit 0deef05

Please sign in to comment.