-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog
14691 lines (10135 loc) · 663 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
************************* 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.
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.