summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix gcc warning: unused variable wakeEventjan.nijtmans2017-05-041-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use GetModuleHandle() in stead of LoadLibrary() when the handle is needed ↵jan.nijtmans2017-05-035-24/+14
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for an already loaded dll. Fix filesystem-1.52 (only works correctly on UNIX)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use GetModuleHandle() in stead of LoadLibrary() when the handle is needed ↵jan.nijtmans2017-05-034-103/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for an already loaded dll. Fix filesystem-1.52 (only works correctly on UNIX)
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [f9fe90d0fa] [file join] normalization. See filesystem-1.52*dgp2017-05-012-1/+21
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [f9fe90d0fa] [file join] normalization. See filesystem-1.52*dgp2017-05-012-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix [8bd13f07bde6fb0631f27927e36461fdefe8ca95|8bd13f07bd]: Closing tcl pipes ↵jan.nijtmans2017-05-016-391/+643
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prevents windows threads from starting up. Patch by sebres (Dipl. Ing. Sergey G. Brester) (also fix duplicate test-case number in link.test)
| * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge core-8-6-branchfix_1997007jan.nijtmans2017-04-2827-150/+299
| |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [win] fixes "wrong" checking of the flag TCL_CLOSE_READ in close2proc (using ↵sebres2017-04-121-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mask)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes sporadically errors in several not event-driven test cases zlib-8.x ↵sebres2017-04-111-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (wrong non-blocking pipe usage, without fileevent resp. vwait)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | improves robustness of the socket tests against busy random ports (fixed ↵sebres2017-04-111-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sporadic errors "already in use")
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code review, robustness increase, avoid infinite wait by exit, thread exit ↵sebres2017-04-114-332/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and by pipes of closed processes); use pipe-helpers (TI-structure handling) for all pipe-workers (tclWinConsole, tclWinSerial);
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | added wake-up event to prevent possible dead-locks by some waiting thread ↵sebres2017-04-112-14/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (e. g. for writable events)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prepared to use pipe-helpers (TI-structure handling) for all pipe-workers ↵sebres2017-04-112-334/+436
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (tclWinConsole, tclWinSerial)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code review and fix small memory leak using ckalloc, without finalization of ↵sebres2017-04-111-36/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tcl subsystem in the worker (if it owns TI structure and calls ckfree)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | shared structures of pipe-workers rewritten using atomic state of the thread; sebres2017-04-113-236/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | asynchronous start/stop of pipe-workers (if possible), try the soft way to end workers using cancelSynchronousIo before it would be terminated;
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix typo- resp. copy-paste-bug (using wrong threadInfo pointer in ↵sebres2017-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ConsoleOutputProc, should be writer, not reader)
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the same handling to initialize thread without suspend/resume helpers ↵sebres2017-04-053-17/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (otherwise may be dangerous by very huge resp. too busy system);
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix typo-bug (using wrong thread handle by set priority) sebres2017-04-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | small review: rewritten using already available event handles, additionally ↵sebres2017-04-053-80/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prevents infinite waits (using timeout 5000ms);
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contributed by "stanko" as patch within ↵sebres2017-04-053-11/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8bd13f07bde6fb0631f27927e36461fdefe8ca95 Resolves blocking of pipes-thread (reader/writer) under huge last: Terminating threads during their initialization resp. teardown phase may result LoaderLock in the ntdll.dll's (to remain locked indefinitely). This causes ntdll.dll's LdrpInitializeThread() to deadlock trying to acquire LoaderLock. Possible fix for 9d75181ee70af318830e99ede6ebb5df72a9b079
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [f34cf83dd0] An optimization was being taken in a case where it produced the ↵dgp2017-04-281-0/+7
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | |_|/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | wrong result, failing to collapse multiple /// into /. Testing on Windows where path expectations may vary would be a good idea, but since this is just an optimization avoidance, I suspect we're ok.
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [f34cf83dd0] An optimization was being taken in a case where it produceddgp2017-04-281-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the wrong result, failing to collapse multiple /// into /. Testing on Windows where path expectations may vary would be a good idea, but since this is just an optimization avoidance, I suspect we're ok.
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test for [f34cf83dd0].dgp2017-04-281-0/+3
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test for [f34cf83dd0].dgp2017-04-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | merge markdgp2017-04-280-0/+0
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry-pick): fix typo-bug (using wrong thread handle by set priority)jan.nijtmans2017-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [04e26c02c0] Remove useless condition that raises warnings.dgp2017-04-271-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry-pick from core-8-6-branch): Update TZ info to tzcode2017b.jan.nijtmans2017-03-23144-6717/+6328
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | silence uninit variable warningsdgp2017-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry-pick from "fix-1997007" branch): fix typo- resp. copy-paste-bug ↵jan.nijtmans2017-04-282-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (using wrong threadInfo pointer in ConsoleOutputProc, should be writer, not reader)
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cherry-pick from "fix-1997007" branch): fix typo-bug (using wrong thread ↵jan.nijtmans2017-04-281-1/+1
| |_|/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handle by set priority)
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [04e26c02c0] Remove useless condition that raises warnings.dgp2017-04-271-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [50750c735a] Fix broken test and stop reading uninit-but-allocated memory in ↵dkf2017-04-272-19/+17
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | zlib channel transform.
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [50750c735a] Fix for uninit memory handling issue in zlib transforms.bug_50750c735adkf2017-04-252-19/+17
|/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deal with a couple of obscure causes of warnings on some versions of OSX.dkf2017-04-252-26/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A better way of getting source file location information when disassembling.dkf2017-04-223-20/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add flag TCL_CC_SEARCH_FLAGS to tclConfig.sh on Windows, just as it exists ↵jan.nijtmans2017-04-205-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on unix, even though it should just be empty: TEA extensions might depend on it.
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix [bc432269b74e9b246bf01f354714fed47cb227ed|bc432269]: http fails in a ↵jan.nijtmans2017-04-181-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | safe interpreter
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repair revised tests that failed.dgp2017-04-172-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use "0%o" format in test-cases, as it suggest's it's the normal way to ↵jan.nijtmans2017-04-145-25/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | format octal numbers: it isn't. Better use "%#o". Add tests for "format" and "scan" corner-cases which weren't documented (except in TIP's) neither had tests before.
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert recent commit [80252e0aed]. TIP 237 is clear that %llu is invalid.dgp2017-04-124-41/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another attempt to fix the two executable flags.jan.nijtmans2017-04-122-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix executable flag for 2 filesjan.nijtmans2017-04-120-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | merge fix-42202ba1e5ff566esebres2017-04-122-1/+70
|\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug fix for [42202ba1e5ff566e0f9abb9f890e460fbc6c1c5c]: segfault by coro injectfix_42202ba1e5ff566esebres2017-04-042-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rewritten callback for ::tcl::unsupported::inject, without leave the interpreter in unusable state (inaccurate environment exchange by adding eval callback), test covered now.
| * | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create new branch named "fix-42202ba1e5ff566e"sebres2017-04-040-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix sporadically errors in zlib-8.x and socket tests, cherry-picked from ↵jan.nijtmans2017-04-122-8/+23
| |_|/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "fix-1997007" branch. Credit to "sebres"!
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix [4b12ccb3363e81b132e8dbe12aeec596102be1a8|4b12ccb336]: format/scan %llu ↵jan.nijtmans2017-04-054-13/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | doesn't work. Also added new test-cases showing the expected behavior.
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code optimization/reduction: If TCL_WIDE_INT_IS_LONG is defined, the ↵jan.nijtmans2017-04-031-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | variable useWide is always 0, so related code can be eliminated without loss of functionality.
* | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [900cb0284bc] Ensure that masking pseudo-methods used for export management ↵dkf2017-03-292-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are not introspectable directly. [cherrypick]