summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_contextlib_async.py
blob: 492b226a0d549b5ca323ae97f7c40d43eb620781 (plain)
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
import asyncio
from contextlib import asynccontextmanager, AbstractAsyncContextManager, AsyncExitStack
import functools
from test import support
import unittest

from test.test_contextlib import TestBaseExitStack


def _async_test(func):
    """Decorator to turn an async function into a test case."""
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        coro = func(*args, **kwargs)
        loop = asyncio.new_event_loop()
        asyncio.set_event_loop(loop)
        try:
            return loop.run_until_complete(coro)
        finally:
            loop.close()
            asyncio.set_event_loop_policy(None)
    return wrapper


class TestAbstractAsyncContextManager(unittest.TestCase):

    @_async_test
    async def test_enter(self):
        class DefaultEnter(AbstractAsyncContextManager):
            async def __aexit__(self, *args):
                await super().__aexit__(*args)

        manager = DefaultEnter()
        self.assertIs(await manager.__aenter__(), manager)

        async with manager as context:
            self.assertIs(manager, context)

    @_async_test
    async def test_async_gen_propagates_generator_exit(self):
        # A regression test for https://bugs.python.org/issue33786.

        @asynccontextmanager
        async def ctx():
            yield

        async def gen():
            async with ctx():
                yield 11

        ret = []
        exc = ValueError(22)
        with self.assertRaises(ValueError):
            async with ctx():
                async for val in gen():
                    ret.append(val)
                    raise exc

        self.assertEqual(ret, [11])

    def test_exit_is_abstract(self):
        class MissingAexit(AbstractAsyncContextManager):
            pass

        with self.assertRaises(TypeError):
            MissingAexit()

    def test_structural_subclassing(self):
        class ManagerFromScratch:
            async def __aenter__(self):
                return self
            async def __aexit__(self, exc_type, exc_value, traceback):
                return None

        self.assertTrue(issubclass(ManagerFromScratch, AbstractAsyncContextManager))

        class DefaultEnter(AbstractAsyncContextManager):
            async def __aexit__(self, *args):
                await super().__aexit__(*args)

        self.assertTrue(issubclass(DefaultEnter, AbstractAsyncContextManager))

        class NoneAenter(ManagerFromScratch):
            __aenter__ = None

        self.assertFalse(issubclass(NoneAenter, AbstractAsyncContextManager))

        class NoneAexit(ManagerFromScratch):
            __aexit__ = None

        self.assertFalse(issubclass(NoneAexit, AbstractAsyncContextManager))


class AsyncContextManagerTestCase(unittest.TestCase):

    @_async_test
    async def test_contextmanager_plain(self):
        state = []
        @asynccontextmanager
        async def woohoo():
            state.append(1)
            yield 42
            state.append(999)
        async with woohoo() as x:
            self.assertEqual(state, [1])
            self.assertEqual(x, 42)
            state.append(x)
        self.assertEqual(state, [1, 42, 999])

    @_async_test
    async def test_contextmanager_finally(self):
        state = []
        @asynccontextmanager
        async def woohoo():
            state.append(1)
            try:
                yield 42
            finally:
                state.append(999)
        with self.assertRaises(ZeroDivisionError):
            async with woohoo() as x:
                self.assertEqual(state, [1])
                self.assertEqual(x, 42)
                state.append(x)
                raise ZeroDivisionError()
        self.assertEqual(state, [1, 42, 999])

    @_async_test
    async def test_contextmanager_no_reraise(self):
        @asynccontextmanager
        async def whee():
            yield
        ctx = whee()
        await ctx.__aenter__()
        # Calling __aexit__ should not result in an exception
        self.assertFalse(await ctx.__aexit__(TypeError, TypeError("foo"), None))

    @_async_test
    async def test_contextmanager_trap_yield_after_throw(self):
        @asynccontextmanager
        async def whoo():
            try:
                yield
            except:
                yield
        ctx = whoo()
        await ctx.__aenter__()
        with self.assertRaises(RuntimeError):
            await ctx.__aexit__(TypeError, TypeError('foo'), None)

    @_async_test
    async def test_contextmanager_trap_no_yield(self):
        @asynccontextmanager
        async def whoo():
            if False:
                yield
        ctx = whoo()
        with self.assertRaises(RuntimeError):
            await ctx.__aenter__()

    @_async_test
    async def test_contextmanager_trap_second_yield(self):
        @asynccontextmanager
        async def whoo():
            yield
            yield
        ctx = whoo()
        await ctx.__aenter__()
        with self.assertRaises(RuntimeError):
            await ctx.__aexit__(None, None, None)

    @_async_test
    async def test_contextmanager_non_normalised(self):
        @asynccontextmanager
        async def whoo():
            try:
                yield
            except RuntimeError:
                raise SyntaxError

        ctx = whoo()
        await ctx.__aenter__()
        with self.assertRaises(SyntaxError):
            await ctx.__aexit__(RuntimeError, None, None)

    @_async_test
    async def test_contextmanager_except(self):
        state = []
        @asynccontextmanager
        async def woohoo():
            state.append(1)
            try:
                yield 42
            except ZeroDivisionError as e:
                state.append(e.args[0])
                self.assertEqual(state, [1, 42, 999])
        async with woohoo() as x:
            self.assertEqual(state, [1])
            self.assertEqual(x, 42)
            state.append(x)
            raise ZeroDivisionError(999)
        self.assertEqual(state, [1, 42, 999])

    @_async_test
    async def test_contextmanager_except_stopiter(self):
        @asynccontextmanager
        async def woohoo():
            yield

        for stop_exc in (StopIteration('spam'), StopAsyncIteration('ham')):
            with self.subTest(type=type(stop_exc)):
                try:
                    async with woohoo():
                        raise stop_exc
                except Exception as ex:
                    self.assertIs(ex, stop_exc)
                else:
                    self.fail(f'{stop_exc} was suppressed')

    @_async_test
    async def test_contextmanager_wrap_runtimeerror(self):
        @asynccontextmanager
        async def woohoo():
            try:
                yield
            except Exception as exc:
                raise RuntimeError(f'caught {exc}') from exc

        with self.assertRaises(RuntimeError):
            async with woohoo():
                1 / 0

        # If the context manager wrapped StopAsyncIteration in a RuntimeError,
        # we also unwrap it, because we can't tell whether the wrapping was
        # done by the generator machinery or by the generator itself.
        with self.assertRaises(StopAsyncIteration):
            async with woohoo():
                raise StopAsyncIteration

    def _create_contextmanager_attribs(self):
        def attribs(**kw):
            def decorate(func):
                for k,v in kw.items():
                    setattr(func,k,v)
                return func
            return decorate
        @asynccontextmanager
        @attribs(foo='bar')
        async def baz(spam):
            """Whee!"""
            yield
        return baz

    def test_contextmanager_attribs(self):
        baz = self._create_contextmanager_attribs()
        self.assertEqual(baz.__name__,'baz')
        self.assertEqual(baz.foo, 'bar')

    @support.requires_docstrings
    def test_contextmanager_doc_attrib(self):
        baz = self._create_contextmanager_attribs()
        self.assertEqual(baz.__doc__, "Whee!")

    @support.requires_docstrings
    @_async_test
    async def test_instance_docstring_given_cm_docstring(self):
        baz = self._create_contextmanager_attribs()(None)
        self.assertEqual(baz.__doc__, "Whee!")
        async with baz:
            pass  # suppress warning

    @_async_test
    async def test_keywords(self):
        # Ensure no keyword arguments are inhibited
        @asynccontextmanager
        async def woohoo(self, func, args, kwds):
            yield (self, func, args, kwds)
        async with woohoo(self=11, func=22, args=33, kwds=44) as target:
            self.assertEqual(target, (11, 22, 33, 44))


class TestAsyncExitStack(TestBaseExitStack, unittest.TestCase):
    class SyncAsyncExitStack(AsyncExitStack):
        @staticmethod
        def run_coroutine(coro):
            loop = asyncio.get_event_loop()

            f = asyncio.ensure_future(coro)
            f.add_done_callback(lambda f: loop.stop())
            loop.run_forever()

            exc = f.exception()

            if not exc:
                return f.result()
            else:
                context = exc.__context__

                try:
                    raise exc
                except:
                    exc.__context__ = context
                    raise exc

        def close(self):
            return self.run_coroutine(self.aclose())

        def __enter__(self):
            return self.run_coroutine(self.__aenter__())

        def __exit__(self, *exc_details):
            return self.run_coroutine(self.__aexit__(*exc_details))

    exit_stack = SyncAsyncExitStack

    def setUp(self):
        self.loop = asyncio.new_event_loop()
        asyncio.set_event_loop(self.loop)
        self.addCleanup(self.loop.close)
        self.addCleanup(asyncio.set_event_loop_policy, None)

    @_async_test
    async def test_async_callback(self):
        expected = [
            ((), {}),
            ((1,), {}),
            ((1,2), {}),
            ((), dict(example=1)),
            ((1,), dict(example=1)),
            ((1,2), dict(example=1)),
        ]
        result = []
        async def _exit(*args, **kwds):
            """Test metadata propagation"""
            result.append((args, kwds))

        async with AsyncExitStack() as stack:
            for args, kwds in reversed(expected):
                if args and kwds:
                    f = stack.push_async_callback(_exit, *args, **kwds)
                elif args:
                    f = stack.push_async_callback(_exit, *args)
                elif kwds:
                    f = stack.push_async_callback(_exit, **kwds)
                else:
                    f = stack.push_async_callback(_exit)
                self.assertIs(f, _exit)
            for wrapper in stack._exit_callbacks:
                self.assertIs(wrapper[1].__wrapped__, _exit)
                self.assertNotEqual(wrapper[1].__name__, _exit.__name__)
                self.assertIsNone(wrapper[1].__doc__, _exit.__doc__)

        self.assertEqual(result, expected)

        result = []
        async with AsyncExitStack() as stack:
            with self.assertRaises(TypeError):
                stack.push_async_callback(arg=1)
            with self.assertRaises(TypeError):
                self.exit_stack.push_async_callback(arg=2)
            with self.assertWarns(DeprecationWarning):
                stack.push_async_callback(callback=_exit, arg=3)
        self.assertEqual(result, [((), {'arg': 3})])

    @_async_test
    async def test_async_push(self):
        exc_raised = ZeroDivisionError
        async def _expect_exc(exc_type, exc, exc_tb):
            self.assertIs(exc_type, exc_raised)
        async def _suppress_exc(*exc_details):
            return True
        async def _expect_ok(exc_type, exc, exc_tb):
            self.assertIsNone(exc_type)
            self.assertIsNone(exc)
            self.assertIsNone(exc_tb)
        class ExitCM(object):
            def __init__(self, check_exc):
                self.check_exc = check_exc
            async def __aenter__(self):
                self.fail("Should not be called!")
            async def __aexit__(self, *exc_details):
                await self.check_exc(*exc_details)

        async with self.exit_stack() as stack:
            stack.push_async_exit(_expect_ok)
            self.assertIs(stack._exit_callbacks[-1][1], _expect_ok)
            cm = ExitCM(_expect_ok)
            stack.push_async_exit(cm)
            self.assertIs(stack._exit_callbacks[-1][1].__self__, cm)
            stack.push_async_exit(_suppress_exc)
            self.assertIs(stack._exit_callbacks[-1][1], _suppress_exc)
            cm = ExitCM(_expect_exc)
            stack.push_async_exit(cm)
            self.assertIs(stack._exit_callbacks[-1][1].__self__, cm)
            stack.push_async_exit(_expect_exc)
            self.assertIs(stack._exit_callbacks[-1][1], _expect_exc)
            stack.push_async_exit(_expect_exc)
            self.assertIs(stack._exit_callbacks[-1][1], _expect_exc)
            1/0

    @_async_test
    async def test_async_enter_context(self):
        class TestCM(object):
            async def __aenter__(self):
                result.append(1)
            async def __aexit__(self, *exc_details):
                result.append(3)

        result = []
        cm = TestCM()

        async with AsyncExitStack() as stack:
            @stack.push_async_callback  # Registered first => cleaned up last
            async def _exit():
                result.append(4)
            self.assertIsNotNone(_exit)
            await stack.enter_async_context(cm)
            self.assertIs(stack._exit_callbacks[-1][1].__self__, cm)
            result.append(2)

        self.assertEqual(result, [1, 2, 3, 4])

    @_async_test
    async def test_async_exit_exception_chaining(self):
        # Ensure exception chaining matches the reference behaviour
        async def raise_exc(exc):
            raise exc

        saved_details = None
        async def suppress_exc(*exc_details):
            nonlocal saved_details
            saved_details = exc_details
            return True

        try:
            async with self.exit_stack() as stack:
                stack.push_async_callback(raise_exc, IndexError)
                stack.push_async_callback(raise_exc, KeyError)
                stack.push_async_callback(raise_exc, AttributeError)
                stack.push_async_exit(suppress_exc)
                stack.push_async_callback(raise_exc, ValueError)
                1 / 0
        except IndexError as exc:
            self.assertIsInstance(exc.__context__, KeyError)
            self.assertIsInstance(exc.__context__.__context__, AttributeError)
            # Inner exceptions were suppressed
            self.assertIsNone(exc.__context__.__context__.__context__)
        else:
            self.fail("Expected IndexError, but no exception was raised")
        # Check the inner exceptions
        inner_exc = saved_details[1]
        self.assertIsInstance(inner_exc, ValueError)
        self.assertIsInstance(inner_exc.__context__, ZeroDivisionError)


if __name__ == '__main__':
    unittest.main()
ementation of [string i...dkf13 years bug_3600058_tdMerge to fix accidental fork in branch bug-3600058-tdtwylite12 years bug_3600328merge trunkdkf13 years bug_3601260merge core-8-5-branchjan.nijtmans13 years bug_3602706Cherrypick again. Add test.dgp13 years bug_3603434Fix for Bug 3603434.dgp13 years bug_3603553Correction to comment in re key buffer size.dkf13 years bug_3603695Apply a fix for the bug. Passes the test suite now.dkf13 years bug_3604074New branch bug-3604074 with improved patch to correct fixempties() failuredgp13 years bug_3604576Finer granulated catchoehhar13 years bug_3605401[Bug 3605401]: Compiler error with latest mingw-w64 headers.jan.nijtmans13 years bug_3605447added testdgp13 years bug_3606121Fixes to namespace-old.testdkf10 years bug_3606683merge trunkdgp13 years bug_3606683_84merge 8.4dgp13 years bug_3606683_85merge 8.5dgp13 years bug_3607246Correct unbalanced effect of TclInvalidateCmdLiteral() on the refcountsdgp13 years bug_36073723607372 Correct literal refcounting.dgp13 years bug_3608360Check for wildcards if we've used FindFirstFile inside NativeAccess.dkf13 years bug_3608714merge trunkdgp11 years bug_3609693[3609693] Must strip the internal representation of procedure-like methods indkf13 years bug_3610026Demand the error message indicating the purpose of the test.dgp13 years bug_3610383First simple-minded attempt at fix. Fixes the demo script.dgp13 years bug_3610404merge trunkdgp13 years bug_3611974minor bug: Don't TclpInitUnlock() here, because the following TclFinalizeLock...jan.nijtmans13 years bug_3613609Fixed the weird edge case.dkf13 years bug_3613671unwrapping some of the complexitydkf13 years bug_3614342Repair TCL_COMPILE_DEBUG guardsdgp13 years bug_39f6304c2emerge trunkjan.nijtmans9 years bug_46f801ea5aTry to make good stack trace. Fallback to making not-so-good stack trace.dgp9 years bug_473946Increase version to 1.2.5jan.nijtmans14 years bug_47d66253c9Possible fix for [47d66253c92197d30bff280b02e0a9e62f07cee2|47d66253c9]: "lsea...jan.nijtmans12 years bug_4a0c163d24New test for clock scan, test numbering correctedoehhar10 years bug_4b61afd660Improve fix and add test.dgp10 years bug_4dbdd9af14Improve the comments and add a test.dgp10 years bug_50750c735a[50750c735a] Fix for uninit memory handling issue in zlib transforms.dkf9 years bug_510001better solution for bug-510001jan.nijtmans14 years bug_547989[547989] Proposed implementation of the change described in the comments of t...dkf13 years bug_57945b574aFurther cleanup and enhancements.Joe Mistachkin10 years bug_57945b574a_without_stubmerge trunkjan.nijtmans11 years bug_581937ab1eFix bug [581937ab1e]: fire readable event on async socket connect failureoehhar12 years bug_58b96f6744make [info commands] follow the namespace path from :: (bug [58b96f6744])aspect9 years bug_593baa032cmerge trunkdgp10 years bug_5adc350683Also test transfroms that delay.dgp11 years bug_5adc350683_86merge iogt fixes.dgp11 years bug_5d170b5ca5merge trunkjan.nijtmans10 years bug_5f71353740merge trunkgahr@gahr.ch10 years bug_67aa9a2070merge core-8-6-branchjan.nijtmans9 years bug_6ca52aec14fix chan leak with http keepalive vs close (bug [6ca52aec14])aspect9 years bug_716b427f76A few more tweaks to streamline and clarify.dgp9 years bug_734138ded8Backout checkin 84f992ce50. This fixes test socket-14.11.1 and createsdgp12 years bug_75b8433707[75b8433707] Plug a subtle memory leak in TclOO. dkf12 years bug_7a87a9bc5bProposed fix for invalid write, found by valgrind.dkf11 years bug_7f02ff1efaNew test trace-18.5 for the bug. Updated trace-18.1 which was tuned to it.dgp10 years bug_80304238acExtra safety against cyclesdgp10 years bug_85ce4bf928[85ce4bf928] Fix for problems with storing Inf with [binary format R].dkf11 years bug_86ceb4e2b6merge trunkdgp13 years bug_879a0747beProposed fix for bug 879a0747bedgp11 years bug_894da183c8[894da183c8] Fix and test for bug at the point it was introduced.dgp11 years bug_8bd13f07bdPatch for [8bd13f07bde6fb0631f27927e36461fdefe8ca95|8bd13f07bd]: Closing tcl ...jan.nijtmans9 years bug_900cb0284bcTweak to make tests a little clearer.dkf9 years bug_96c3f3b47d1Tcl_GetWideIntFromObj must fail for values between WIDE_MAX+1 and UWIDE_MAX (...aspect9 years bug_97069ea11aRevert the tests for bug#97069ea11a from socket.test, because it is hard to t...max12 years bug_9b47029467631832Add test-case which demonstrates the problem. This test-case fails in trunk (...jan.nijtmans10 years bug_a3309d01dbAdd the missing cleanup bits in INST_UNSET_ARRAY.dgp11 years bug_adb198c256Pull out of the loop a block of code that can only run in first iteration.dgp9 years bug_af08e89777Rework the *FinalizeThread*() routines so that the quick exit preferencedgp11 years bug_b26e38a3e4Fix the bug. Make use of zlib API in this area more like a Tcl API with wrapp...dkf9 years bug_b5ced5865bProposed workaround for [b5ced5865b]: newer MinGW compilers can link director...jan.nijtmans11 years bug_b87ad7e914Fix for [b87ad7e9146832d505f9a430d779c5313c440256|b87ad7e914], rebased to cor...jan.nijtmans9 years bug_b9b2079e6dNew test compile-5.3 for the bug.dgp10 years bug_ba44e415a0Proposed fix for [ba44e415a0]: "Use of mutexLock causes problem with reactive...jan.nijtmans10 years bug_bbc304f61a[bbc304f61a] Proposed fix for reflected watch race condition.dgp10 years bug_bc1a96407atest casesdgp11 years bug_bd7f17bce8Enable TCL_EVAL_INVOKE support in the Tcl*Eval(Ex)* family.dgp10 years bug_bdd91c7e43Suggested fix for [bdd91c7e43]: tclsh crashes in [interp delete]jan.nijtmans13 years bug_c4e230f29brebase against trunkjan.nijtmans13 years bug_c7d0bc9a549714e0Proposed fix for [c7d0bc9a549714e0]. Thanks to mr_calvinjan.nijtmans10 years bug_d2ffcca163Limit isalpha(.) calls in the expr parser to only apply to known ASCIIdgp11 years bug_d3071887dbc7aeac.... oops ....jan.nijtmans10 years bug_d4e464ae48First attempt to fix bug [d4e464ae48]: tcl 8.5.15/8.61 breaks python make che...jan.nijtmans12 years bug_d4e7780ca1Additiona patch/suggestion from Gustaf. This indeed fixes the crash in oo.tes...jan.nijtmans10 years bug_d5ddbc7f49merge trunkdkf12 years bug_db0a5f6417Make a few tests more resilient to differences in the semantics of pipes betw...dkf10 years bug_dcc03414f5Revert bug-fix for [2413550], in order to be able to investigate whether it c...jan.nijtmans11 years bug_dfc08326e3merge trunkjan.nijtmans12 years bug_e0a7b3e5f8merge 8.5dgp10 years bug_e21fc32c2aaProposed fix for [e21fc32c2aa]: auto_execok does not check executability on W...jan.nijtmans10 years bug_e711ffb458New utility routine GetLocalScalarIndex() reduces common caller boilerplatedgp11 years bug_f1253530cdMerged trunkfvogel10 years bug_f1253530cd_altAlternative solution for [f1253530cd]jan.nijtmans10 years bug_f4f44174emove pthread_sigmask() calls to Tcl_WaitForEvent() where they belongaspect9 years bug_f97d4ee020Make the tests pass.dkf10 years bug_f9fe90d0fa[f9fe90d0fa]: more path normalization in TclNewFSPathObjaspect9 years bug_io_32_11merge 8.5dgp12 years bug_itcl_1b2865Slightly more efficient version as this is Hot Path code.dkf9 years bug_unknown_no_errorcodePotential fix for issues relating to lack of errorCode setting with unknown c...dkf13 years bugfix_832a1994c7_for_precompiled_bcFixed bug in parent revision [832a1994c7] unpredictably breaking theandreask13 years cjo_hydramerge tip-445dgp8 years compile_ensemble(experiment): Always compile ensembles. Result: 2 test failures in the "histo...jan.nijtmans9 years contrib_patrick_fradin_code_cleanupmerge trunkdgp13 years core_8_0_2_syntheticCreated branch core-8-0-2-syntheticcvs2fossil28 years core_8_0_3_prPost-release revisions to restore building on later platforms.dgp13 years core_8_0_4_syntheticCreated branch core-8-0-4-syntheticcvs2fossil27 years core_8_0_5_base_syntheticCreated branch core-8-0-5-base-syntheticcvs2fossil27 years core_8_0_5_branchApplied patch to fix sockets when the FD_CONNECT never happens redman27 years core_8_0_5_syntheticCreated branch core-8-0-5-syntheticcvs2fossil27 years core_8_0_6_branchCreating branch core-8-0-6-branchcvs27 years core_8_1_0_syntheticCreated branch core-8-1-0-syntheticcvs2fossil27 years core_8_1_b1_syntheticCreated branch core-8-1-b1-syntheticcvs2fossil27 years core_8_1_b2_syntheticCreated branch core-8-1-b2-syntheticcvs2fossil27 years core_8_1_b3_syntheticCreated branch core-8-1-b3-syntheticcvs2fossil27 years core_8_1_branch_oldFixed problem with LD_SEARCH_FLAGS on Solaris. It's different rjohnson27 years core_8_2_1_branchFix sh quoting error reported in bash-3.1+ [Bug 1377619] nijtmans16 years core_8_2_b1_syntheticCreated branch core-8-2-b1-syntheticcvs2fossil27 years core_8_2_b3_branchRemoved patch to change prototype of Tcl_ListObjGetElements. redman27 years core_8_3_1_branch[Bug 3030870] make itcl 3.x built with pre-8.6 work in 8.6: nijtmans16 years core_8_3_1_io_rewrite * generic/tclStubInit.c: hobbs26 years core_8_3_1_syntheticCreated branch core-8-3-1-syntheticcvs2fossil26 years core_8_4_20_rcTag for release.dgp13 years core_8_4_a2_syntheticCreated branch core-8-4-a2-syntheticcvs2fossil25 years core_8_4_branchmerge releasedgp13 years core_8_5_10_rcmerge to RCdgp15 years core_8_5_11_rctag&bag another 8.5.11 RC.dgp14 years core_8_5_12_rcmerge 8.5dgp14 years core_8_5_13_rcChangeLog release markdgp13 years core_8_5_14rcRedate. Retag RC1.dgp13 years core_8_5_15_rcAdded note to ChangeLog pointing to the fossil timeline for better logging.dgp13 years core_8_5_16_rc`make dist` allowed README-* fossil droppings to leak into the distribution.dgp12 years core_8_5_17_rcupdate changesdgp11 years core_8_5_18_rcrepair nroff breakagedgp11 years core_8_5_19_rcupdate release datedgp10 years core_8_5_a5_syntheticCreated branch core-8-5-a5-syntheticcvs2fossil19 years core_8_5_branch[0e4d88b650] Allow command overwrite when deletion callback deletes namespace.dgp9 years core_8_5_branch_fix_1997007code review: restore missing "break" to step out from internal cycle "while (...sebres9 years core_8_6_0_rcmerge trunk, update changes and re-tagdgp13 years core_8_6_1_rcmerge trunkdgp13 years core_8_6_2_rcmerge trunk; update changesdgp12 years core_8_6_3_rcLikely fix for channel mem leaks.dgp11 years core_8_6_4_rcupdate changesdgp11 years core_8_6_5_rcmerge trunkdgp10 years core_8_6_6_rca few test & docs fixesdgp10 years core_8_6_7_rcbump release datedgp9 years core_8_6_b2_rcmerge from trunk to rc all but the AI_ADDRCONFIG experimentdgp15 years core_8_6_b3_rcTag Tcl 8.6b3 for release.dgp14 years core_8_6_branchRFE [566a999189] - better error message for 32/64 bit mismatch on load.apnadkarni8 years core_8_6_branch_forkFixup the ensemble rewrite conversions.dgp10 years core_8_7_a1_rcmerge trunk; rc1dgp9 years core_stabilizer_branchmerge updates from 8.5 branch dgp18 years core_stabilizer_merge_syntheticCreated branch core-stabilizer-merge-syntheticcvs2fossil18 years core_zip_vfsImprovements to Tip#430 based on community input. Added a forward declaration...hypnotoad8 years core_zip_vfs_c_encoderTweaks to buildhypnotoad11 years core_zip_vfs_staticAdd Static library link instructions to tclConfig.shhypnotoad12 years cpuid_on_unixcpuid-on-unixjan.nijtmans14 years cygwin_environment_changescygwin should use SetEnvironmentVariable for windows envjan.nijtmans14 years dah_proc_arg_upvarMore comments, fix bug where numArgs should be argCtdah9 years damkerngt_file_utimeAdd new sub-command: file utime ?ATIME? MTIMEdamkerngt12 years daves_chop_branchCreating branch daves-chop-branchcvs25 years daves_mk_branchworks! I feel like a sculpter. Not done, by far. davygrvy25 years dev_8_1_stubs_branchMerged 8.0 stub changes stanton27 years dev_hobbs_branchrefactored varname pushing code and some of the bytecode instructions hobbs25 years dev_stubs_branch* tools/genStubs.tcl: Reorganized code to support mixed generic stanton27 years dgp_3401704Tidiness, comments, and tests.dgp15 years dgp_async_socketThese edits make all tests outside of socket-14.* pass on OSX Mavericks.dgp12 years dgp_bug_findNow fix the bug.dgp10 years dgp_bye_ctx_eval_flagConsolidate some helper routines.dgp13 years dgp_bye_location_eval_listDrop TCL_LOCATION_EVAL_LIST now that it is unused.dgp13 years dgp_channel_flag_repairSimplify the inputProc of [testchannel transform].dgp12 years dgp_cmd_epochRemove dup line.dgp9 years dgp_compile_list_shimmerUnless I'm missing something, this patch to TclCompileListCmd() shoulddgp13 years dgp_defer_string_repTidier version.dkf11 years dgp_demoFixup restacking tests to expect the right results.dgp12 years dgp_dup_encoding_fixmerge trunkdgp10 years dgp_ecrMissed a cleanup line, which created a memleak.dgp10 years dgp_encoding_flagsSupport TCL_ENCODING_CHAR_LIMIT in TableToUtfProc and EscapeToUtfProc drivers.dgp11 years dgp_ensemble_rewritemerge 8.6dgp10 years dgp_eofCorrect some faulty assumptions in the zlib transformation input driver. dgp12 years dgp_experimentSimplify ReadBytes based on new constraints.dgp12 years dgp_flush_channelUpdate comment to explain assumptions.dgp12 years dgp_hoehrmann_decoderFeature branch to explore making use of the Hoehrmann UTF-8 decoder.dgp14 years dgp_init_bytecodeParameterize TclInitByteCodeObj to callers sense of typePtr.dgp10 years dgp_list_simplifyRemove the old implementation.dgp15 years dgp_literal_reformmerge trunkdgp10 years dgp_may_be_pointlessRevised ReadChars to restore an attempt to make sure we do not short readdgp12 years dgp_move_buffersmerge trunkdgp12 years dgp_no_buffer_recycleRevise the logic for setting TCL_ENCODING_END in the outputEncodingFlagsdgp12 years dgp_optimize_output_stageBe sure to finalize the identity encoding.dgp12 years dgp_pkg_migrationmerge trunkdgp12 years dgp_properbytearraymerge novemdgp8 years dgp_purge_NRRunObjProcTidy the code and add a test.dgp13 years dgp_read_bytesMerge 8.5.dgp12 years dgp_read_bytes_detourmissing declarationdgp12 years dgp_read_charstidy up.dgp12 years dgp_refactorRefactor code common to merge and insert.dgp8 years dgp_refactor_merge_syntheticCreated branch dgp-refactor-merge-syntheticcvs2fossil15 years dgp_remove_string_resultrevert mistaken commitdgp13 years dgp_reviewequivalentjan.nijtmans13 years dgp_revise_parsedvarnametypeThere's a "parsedVarName" Tcl_ObjType that remembers how a variable namedgp10 years dgp_scan_elementmerge trunkjan.nijtmans14 years dgp_slow_readSame results; simpler logic.dgp12 years dgp_sprintfStart branch reducing use of sprintf().dgp13 years dgp_stack_depth_testerReport pc value when VERIFY fails.dgp12 years dgp_stackedstdchanFix for core bug yet to be named/numbered.dgp13 years dgp_stop_regexp_test_crashBackout the contributed patch memaccounting from Postgres since it changesdgp@users.sourceforge.net10 years dgp_string_catReplace indexing with pointer increments.dgp9 years dgp_string_findOptimize case of all single-byte chars.dgp9 years dgp_stringcat_delaystringrepDon't test the impossible.dgp9 years dgp_switch_compileDrop old code.dgp15 years dgp_tailcall_errorinfoSuppress additions to the -errorinfo from a tailcall-invoked command.dgp10 years dgp_tailcall_errorinfo_altDifferent solution to the tailcall impact on -errorinfo.dgp10 years dgp_tcs_rewrite[assemble] compile syntax error into bytecode reporting syntax error message.dgp13 years dgp_thread_leaksUse the Thread package instead of the [testthread] command to do dgp15 years dgp_trunk_flag_repairSame improvements to the zlib transform operations.dgp12 years dgp_trunk_readmerge trunkdgp12 years dgp_win_specific_strictUpon further review, due the order of #include of headers, we do not havedgp11 years dgp_writebytes_optimizeMake simplificiations possible when we know just bytes are getting copieddgp12 years dkf_64bit_support_branchAdded test for meaning of tcl_platform(wordSize) dkf24 years dkf_alias_encodingmerge trunkdkf14 years dkf_asm_crash_20131022merge trunkdgp12 years dkf_bcc_optimizemerge trunkdkf13 years dkf_better_try_compilationFix the problems with code generation; behavior now appears correct.dkf13 years dkf_bytecode_8_6compilation of [string is]dkf12 years dkf_bytecode_8_6_evalmerge main working branchdkf12 years dkf_bytecode_8_6_joinmerge main working branchdkf12 years dkf_bytecode_8_6_nextmerge main working branch; made opcode work by getting callback ordering rightdkf12 years dkf_bytecode_8_6_string_isimprove the disassemblydkf12 years dkf_bytecode_8_6_string_replaceprecondition was wrong, and needed to flush part of the string/internal repdkf12 years dkf_bytecode_8_6_yieldfix INST_YIELD so that it worksmig13 years dkf_bytecode_optimizermerge trunkdkf13 years dkf_command_typemerge trunkdkf13 years dkf_compile_improvementsmerge trunkdkf13 years dkf_dict_with_compiledAdd the other instructions to the assembler's nous.dkf14 years dkf_documentation_figuresmerge trunkdkf14 years dkf_expose_ptrgetvarmerge trunkdkf9 years dkf_expose_ptrgetvar_8_6Expose some of the core variable access APIs. dkf9 years dkf_http_cookiesmerge trunkdkf12 years dkf_improved_disassemblerTidy things up a bit more.dkf12 years dkf_loop_exception_range_workAnd the last bits that need fixing; the code is still less efficient than des...dkf12 years dkf_namespace_as_ensembleAdd ChangeLog entry.dkf15 years dkf_notifier_pollmerge trunkdkf14 years dkf_oo_override_definition_namespacesThink-o fix...dkf9 years dkf_quieter_compilesmore quieting of excessively-noisy messagesdkf12 years dkf_reviewremove uninitialized variable and the code that used it mig12 years dkf_utf16_branchmerge trunkdkf14 years dkf_wait_with_pollExperimental branch on whether to use poll() instead of select().dkf10 years dogeen_assembler_branchmerge trunkKevin B Kenny15 years dogeen_assembler_merge_syntheticCreated branch dogeen-assembler-merge-syntheticcvs2fossil15 years drh_micro_optimizationMerge trunkjan.nijtmans10 years editorconfigEditorconfig support (experimental)jan.nijtmans10 years empty_bodiesmerge trunkMiguel Sofer10 years experimentmerge 8.5dgp11 years experimentalFix typo in previous check-in.Joe Mistachkin11 years ferrieux_naclAdd a local copy of reference JS demo at same fps. Add an interactive tclsh p...ferrieux14 years fix_1997007merge core-8-6-branchjan.nijtmans9 years fix_42202ba1e5ff566ebug fix for [42202ba1e5ff566e0f9abb9f890e460fbc6c1c5c]: segfault by coro injectsebres9 years fix_8_5_578155d5a19b348dstability fix: try to avoid segfault using released object, in error case of ...sebres9 years fix_win_native_accessmerge to bugfix branchdgp14 years fix_windows_zlibFix for the cases where a dynamic build is usedhypnotoad12 years forgiving_pkgconfigoopsjan.nijtmans13 years freq_3010352_implFRQ 3010352 implementationjan.nijtmans15 years frq_3527238merge trunkjan.nijtmans14 years frq_3544967same fore Makefile.injan.nijtmans14 years frq_3579001merge trunkjan.nijtmans13 years frq_3599786Experimental: categories added to man pages; enhance tcltk-man2html to use ca...twylite13 years gahr_split_installCreate new branch named "gahr-split-install"gahr10 years gahr_ticket_dee3d66bc7[dee3d66bc7] Remove 'any' afgahr10 years gahr_ticket_e6f27aa56fmerge trunkjan.nijtmans9 years gahr_tip_447Merge trunkgahr10 years griffin_numlevelsmerge 8.5dgp13 years htmlCopyrightsFixFix the generated copyright sections in the HTML help file.Joe Mistachkin9 years htmlhelpFixSet the default topic, enable full-text search, and put all help output files...Joe Mistachkin10 years http3Checkpoint of work in progress.dkf8 years hypnotoadUpdating hypnotoad branchtne12 years hypnotoad_bug_3598385Merging in changes from trunkseandeelywoods13 years hypnotoad_prefer_native_8_6Bringing patch up to date with the latest trunkhypnotoad13 years hypnotoad_vexprBringing vexpr up to date with the latest trunk.hypnotoad13 years info_linkednameAdd [info linkedname] introspection commandmlafon9 years initsubsystemsmerge trunkjan.nijtmans9 years initsubsystems2revert previous 2 commits: Setting argv0 as well is not a good idea. Needs to...jan.nijtmans13 years initsubsystems2_splitHow would it look like, if the various initializations were split in separate...jan.nijtmans13 years iocmd_leaksConstrain test iocmd.tf-32.1 to be skipped during valgrinding. It contains a dgp15 years iosTesting patches for iOS supportKevin Walzer12 years irontclThe 'clean' target should delete the generated 'nmhlp-out.txt' file as well.Joe Mistachkin9 years jcr_notifier_pollMerge from trunkevilotto11 years je_tty_cleanupCreate new branch named "je-tty-cleanup"joe13 years jenglish_termios_cleanup... which means struct TtyState can be replaced with struct FileState.joe13 years jn_0d_radix_prefixmerge trunkjan.nijtmans9 years jn_Tcl_requirementLet Tcl 8.7 allow Tk 8.7 to be used by defaultjan.nijtmans10 years jn_emptystringMerge trunk. Don't use ListObjLength() in tclStrToD.cjan.nijtmans9 years jn_frq_3257396merge latest trunkjan.nijtmans15 years jn_no_struct_namesunnecessary hook struct definitionsjan.nijtmans14 years jn_unc_vfsintegrate QNX special path handling better with TIP #402jan.nijtmans14 years jn_wide_printfImplement all possible TCL_LL_MODIFIER formats in Tcl_ObjPrintf(), can be "ll...jan.nijtmans9 years kbk_clock_encoding_ensemblesMake 'clock' and 'encoding' into compilable ensembles that play with safe int...Kevin B Kenny9 years kennykb_numerics_branchmerge updates from HEAD dgp20 years kennykb_tip_22_33 * Typo correction. dgp25 years kennykb_tip_22_33_botchedDevelopment branch for TIPs 22 and 33 Kevin B Kenny25 years lanam_array_for_implMerge trunkandy9 years libtommath'const'ify all libtommath functions, will appear in next libtommath version. ...jan.nijtmans8 years libtommath_1_0Restore bn_mp_radix_size.c to exact copy of libtommath-1.0 version: Since the...jan.nijtmans9 years libtommath_1_0_1Merge libtommath 1.0.1 finaljan.nijtmans9 years libtommath_tcl_fixes_75(experiment) See: [https://github.com/libtom/libtommath/pull/75] proposal by ...jan.nijtmans9 years littleMerge 8.6.5dgp10 years macosx_8_4_branchadded macosx-8-4-branch ChangeLog entries das24 years masterMerge latest 'const'ification changes from libtommath (develop branch, will b...jan.nijtmans8 years merge_tzdata_to_trunkMerge Forkvenkat10 years micro_optMerge tip-444gahr10 years mig_alloc_reformmerge trunkmig13 years mig_catch_compilerallow simple optimization of the OK case, at the cost of some code duplicationmig12 years mig_errstill no goodmig13 years mig_no280merge trunkmig13 years mig_nre_modscode reordering, no func changesMiguel Sofer10 years mig_opt2replace indirect with direct jumps where possible; little effect for now, pen...Miguel Sofer10 years mig_opt2_tmp(NON_PORTABLE) insure good cache alignment of NRE_callbackMiguel Sofer10 years mig_opt_foreachchange NULL to INT2PTR(0), for claritymig12 years mig_optimize*** ABANDONED - see branch mig-opt2 *** Miguel Sofer10 years mig_review[010f4162ef] Repair effect of trace errors on -errorinfo and -errorstack.dgp13 years mig_stacklevelsstop looking at the C-stack depthmig13 years mig_strip_brutalmerge no280, emptymig13 years mig_tailcall_cleanupmore commentsMiguel Sofer11 years mig_tmpupdate the range data for code that was moved to the endMiguel Sofer10 years mig_tmp_optimizeMaking the optimizer pluggable by extensions; please review for committing to...mig12 years minimal_fix_for_3598300_problemsAs minimal a fix for the issues with [3598300] as I can make.dkf13 years miniz*** NON WORKING BUILD *** hypnotoad12 years mistachkin_review**TIP #285 untested by the testsuite if the thread extension is not available...mig12 years mistakeCheck in reference implementation of TIP 452.gerald9 years mistake_20110314Revert previous commit: I was not aware that we have a fork of libtommathjan.nijtmans15 years mistake_20110314aRevert previous commit: I was not aware that we have a fork of libtommathjan.nijtmans15 years mistkae[50750c735a] Possible fix for uninit memory handling issue in [zlib].dkf9 years mod_8_3_4_branch * generic/tclProc.c (TclCloneProc): Fixed leaking of 'procNew', andreas_kupries23 years more_macrosmerge trunkjan.nijtmans13 years msgcat_dyn_localeAdded tests for mcforgetpackage, mcpackagelocale and mcpackageconfigoehhar11 years msofer_bcEngineupdated some comments Miguel Sofer25 years msofer_wcodes_branch * generic/tclExecute.c: fixing an error in INST_LNOT and Miguel Sofer20 years msvc_with_64bit_zlib1_dllExperiment: MSVC build now links with 64-bit zlib1.dlljan.nijtmans14 years no_shimmer_string_lengthfix broken lset tests, now all test-cases pass!jan.nijtmans13 years no_smartrefAttempt to get new clock code working without the need for smartref.jan.nijtmans9 years nonmonotonic_obj_allocZap outdated comment.ferrieux12 years notifierIntroduce new function TclInitThreadAlloc(), symmetric with TclFinalizeThread...jan.nijtmans9 years novemMerge trunkjan.nijtmans8 years novem_64bit_sizesmerge novemdkf12 years novem_ak_iframe_directCleaning up some of the internals of TIP #280.andreask13 years novem_ak_preserve_experimentsThis branch explores the performance implications of relacing the andreask13 years novem_bighashMerge novemjan.nijtmans10 years novem_bug_3598300merge novemjan.nijtmans12 years novem_demo_bug_3588687now change magic value, to demonstrate better solutionjan.nijtmans13 years novem_freeifrefcountzeroFix correct cleanup in more situations, using a new macro TclFreeIfRefCountZerojan.nijtmans13 years novem_more_memory_APImerge novemjan.nijtmans9 years novem_no_register_objtypesuse longValue as internal repr in stead of wideValue. jan.nijtmans13 years novem_no_shimmer_string_lengthNew experiment (ended), regarding non-shimmering "string length"jan.nijtmans13 years novem_no_startcmdmerge changes from trunkdkf13 years novem_numbers_eiasWIP getting rid of the ::tcl_precision variabledgp13 years novem_purge_literalsBranch to investigate what happens when we no longer maintain shareddgp13 years novem_reduced_bytecodesmerge main novem branchdkf13 years novem_reduced_symbol_exportimprove compatibility with initsubsystems branchjan.nijtmans12 years novem_remove_string_resultNo string result -> no more need for TCL_RESULT_SIZEdgp13 years novem_remove_vamerge novemjan.nijtmans13 years novem_rename_memory_APIRename the memory routines so that Tcl_Alloc/Tcl_Free/etc become the recommendeddgp13 years novem_reviewProposed rollback of the TCL_STUB_MAGIC change on novem branch.dgp13 years novem_saveresult_as_macroImplement Tcl_SaveResult/Tcl_DiscardResult/Tcl_RestoreResult as macrojan.nijtmans13 years novem_supportdo some Tcl_EvalEx, for test-purposes, demonstrating a crashjan.nijtmans13 years novem_two_layer_listFirst sketches of a two-layer data structure for storing Tcl lists.dgp13 years novem_unversioned_stubmerge novem. Some more fixes.jan.nijtmans13 years off_8_4_branchWrap test-case over multiple lines.jan.nijtmans13 years off_trunkAdded tooltip generation to contents and keywords pages.dkf13 years on_hold_84<i>On-hold at Don Porter's request.</i> jan.nijtmans13 years on_hold_85<i>On hold at Don Porter's request</i> jan.nijtmans13 years on_hold_trunk<i>on-hold at Don Porter's request</i> jan.nijtmans13 years oo_copy_nsImprove docs, add tests, fix a corner case in the implementation.dkf9 years other_64bit_candidatesThis doesn't compile! Just a reminder to myself which other API's/fields/what...jan.nijtmans13 years package_filesFlightAware feedback: "Aside: Any way to find out what the pkgIndex.tcl file ...jan.nijtmans9 years panic_noreturnDecorate Tcl_Panic and Tcl_PanicVA with the noreturn option, alowing further ...jan.nijtmans10 years prevent_inlinePrevent inlining of StackGrowsDown(), in case of cross-compilingjan.nijtmans13 years privatexjan.nijtmans14 years pseudotrunk_2011_03_08More gcc warnings: variable set but not usedjan.nijtmans15 years pyk_emptystringmerge trunkjan.nijtmans9 years pyk_expr_numericHarmonize tests with expr implementation.pooryorick9 years pyk_listdictstringrepAdd back constraint that direct dict->list conversion is only done when no st...pooryorick10 years pyk_pkgrequirenreNRE-enable [package ifneeded] scripts.pooryorick10 years pyk_trunkmerge pyk-listdictstringreppooryorick10 years remove_pathappend_intrepmerge trunkdgp14 years remove_trim_headerRevert Makefile.in changes and remove added tclStringTrim.h header. jan.nijtmans12 years revert_3396731Repaired the lost performance in the copy loop hotspots. Now meets or dgp15 years rfe_1711975Tcl_MainEx() (like Tk_MainEx())jan.nijtmans15 years rfe_3216010Merge to feature branchdkf15 years rfe_3389978More efficient/robust implementation of function TclNativeCreateNativeRep(). jan.nijtmans12 years rfe_3432962Submitted patch on interactive use of the rc file.dgp13 years rfe_3464401merge to feature branchjan.nijtmans14 years rfe_3473670merge trunkjan.nijtmans14 years rfe_6c0d7aec67merge core-8-6-branchjan.nijtmans9 years rfe_854941Minor simplification and correct TCL_NORETURN decorationjan.nijtmans10 years rfe_b42b208ba4Only write back file attributes if any of them really changed.jan.nijtmans12 years rfe_dfc08326e3The Tcl 9.0 way of how [dfc08326e3] should be fixed: Real integration of TclO...jan.nijtmans12 years rfe_notifier_forkFixed test case variable clash with 'folder'oehhar13 years rmax_ipv6_branchcomplete a comment in socket.testmax15 years rmax_ipv6_merge_syntheticCreated branch rmax-ipv6-merge-syntheticcvs2fossil15 years robust_async_connect_testsmerge trunkjan.nijtmans12 years scriptics_sc_1_0_branchCreating branch scriptics-sc-1-0-branchcvs26 years scriptics_sc_1_1_branchCreating branch scriptics-sc-1-1-branchcvs26 years scriptics_sc_2_0_b2_syntheticCreated branch scriptics-sc-2-0-b2-syntheticcvs2fossil26 years scriptics_sc_2_0_b5_syntheticCreated branch scriptics-sc-2-0-b5-syntheticcvs2fossil26 years scriptics_sc_2_0_fixed_syntheticCreated branch scriptics-sc-2-0-fixed-syntheticcvs2fossil26 years scriptics_tclpro_1_2added missing files, changed to handle CRLF translations stanton27 years scriptics_tclpro_1_2_oldUpdated patchlevel for final release. rjohnson27 years scriptics_tclpro_1_2_syntheticCreated branch scriptics-tclpro-1-2-syntheticcvs2fossil27 years scriptics_tclpro_1_3_b2_branchFixed so patchlevel is included in installer strings. stanton27 years scriptics_tclpro_1_3_b3_syntheticCreated branch scriptics-tclpro-1-3-b3-syntheticcvs2fossil27 years sebres_8_5_event_perf_branchmerge (integrate) sebres-event-perf-fix-busy-waitsebres9 years sebres_8_5_timerate[win32] optimized calibration cycle (makes Tcl for windows "RTS" resp. NRT-ca...sebres9 years sebres_8_6_clock_speedupsmall amend with forgetten static keyword by optionsebres9 years sebres_8_6_clock_speedup_cr1fixed overflow of year (resp. julianday), closes ticket [16e4fc3096]; test ca...sebres9 years sebres_8_6_event_perf_branchmerge sebres-event-perf-fix-busy-waitsebres9 years sebres_8_6_timerateman for timerate (doc/timerate.n)sebres9 years sebres_clean_core_8_5generic: reduced diffs to trunk, win: clean code after bug [f00009f7ce] was f...sebres11 years sebres_clock_speedupCreate new branch named "sebres-clock-speedup"sebres9 years sebres_clock_tz_fixclock - FreeScan (resp. Oldscan): repair scanning date/time with TZ using '+'...sebres11 years sebres_event_perf_fix_busy_waitavoid busy wait if new short block-time will be set within service event-cycl...sebres9 years sebres_optimized_8_5merge bugfixdkf14 years sebres_trunk_clock_speedupmerge sebres-8-6-clock-speedupsebres9 years sebres_trunk_timeratereintergrate (merge back) "sebres-8-6-timerate" into "sebres-trunk-timerate"sebres9 years semverRe-base to trunk. Now versioned as 8.7.0-alpha.2jan.nijtmans9 years stwo_dev86Change the return type of Tcl_RegisterChannel from void to Tcl_Channel and ha...stu9 years tclPlatformEngineUpdate comment with TIP number.Joe Mistachkin10 years tcl_nosize(Bad idea)jan.nijtmans13 years tclchan_assertionsbackout backwards-incompatible experiment that was accidentally committedbch11 years tclpro_1_5_0_syntheticCreated branch tclpro-1-5-0-syntheticcvs2fossil26 years tcltest_verbose_descGeneralization: desc is now appended to most events.ferrieux12 years tgl_pg_reAdapted new tests contributed from Tom Lane @postgres.dgp10 years thread_leaksstop segfaultdgp15 years ticket_9b2e636361Allocate encoding name, so caller of Tcl_RegisterConfig() doesn't need to kee...jan.nijtmans13 years ticket_e770d92d6Patch to add support for higher baud rates under Unix Ticket [e770d92d76]]hypnotoad11 years tip280_test_coverageRevert the revised macros used in developing the new tests.dgp13 years tip404_tcl8_5Correct build version and backported 973091ef75oehhar14 years tip429_only_idRecognize that "id" is the K combinator in disguise. Rename it as "K" and ext...ferrieux12 years tip_106_implfix handling of closing '\0' for -binary datajan.nijtmans14 years tip_162_branchread() errors or EOF shall not prevent write(). This allows for proper grace...davygrvy17 years tip_257_implementation_branchRenamed functions to reduce confusion and added to header file. dkf19 years tip_257_implementation_branch_root_syntheticCreated branch tip-257-implementation-branch-root-syntheticcvs2fossil20 years tip_257_merge1_branch_20061020T1300add tclOO* files das19 years tip_278_branch * tests/namespace-old.test (5.4 6.12,14,15): Miguel Sofer19 years tip_282merge trunkdgp9 years tip_302Added patch for win/configure.in into win/configure.acoehhar10 years tip_312merge trunkjan.nijtmans9 years tip_318_updatemerge trunkjan.nijtmans13 years tip_388_implmerge trunk to feature branchjan.nijtmans15 years tip_389_implmerge trunkjan.nijtmans9 years tip_395_with_alt_namealternative TIP 395 implementation:jan.nijtmans14 years tip_398_implCompat flag, test, and doc update.ferrieux14 years tip_400_implmerge trunkdkf13 years tip_401merge trunkdgp14 years tip_404ChangeLog entry addedoehhar14 years tip_405_impl_tdmerge trunkdkf13 years tip_427Documented "fconfigure $h -connecting" on socket man pageoehhar11 years tip_428Merge trunkoehhar11 years tip_429merge trunkferrieux12 years tip_436Added tests.dkf11 years tip_440_altRedo TIP #440 alternative again, now using "info runtime".jan.nijtmans10 years tip_440_backportBackport of TIP #440.Joe Mistachkin10 years tip_444merge trunkgahr10 years tip_445More TIP 445 conversion of the "path" Tcl_ObjType.dgp8 years tip_445_forkmerge trunkdgp10 years tip_445_rejectConvert the "bytearray" Tcl_ObjType to use the proposed Tcl_ObjIntRepdgp10 years tip_452Tests for ::http::Write done.gerald9 years tip_456Further experimental follow-up: Add internal function TclOpenTcpClientEx(), a...jan.nijtmans9 years tip_456_forkmerge forkjan.nijtmans9 years tip_457TIP#457: Update named group endingmlafon9 years tip_458merge trunkdgp9 years tip_458_experimentExperiment, does this work? Still to be tested: Eliminate variable triggerPip...jan.nijtmans9 years tip_463merge trunkdgp9 years tip_465Deal with backslashes in ${...}, change "char" to "character" in error, fix t...avl9 years tip_468merge (minor style issues from) trunkjan.nijtmans9 years tip_468_bisMerge "tip-468" branch. Add new function Tcl_OpenTcpClientEx() with same chan...jan.nijtmans9 years tip_469Make it work again with new epoll Notifieravl429 years tip_470merge trunkdkf9 years tip_473Documentation correction; issue pointed out by DGP.dkf9 years tip_59_implementation2002-04-05 Daniel Steffen <das@users.sourceforge.net> das24 years tip_improve_execFirst part of upcoming TIP - Improving [exec]'s syntax : the syntax extension...ferrieux13 years tk_bug_9eb55debc5Was handling the flushing at the end of the stream wrongly.dkf10 years tkt3328635_posix_monotonic_clockMerge trunkjan.nijtmans9 years tkt_04e26c02c0Make sure not to miss bignumsgahr9 years tkt_414d10346bAnother attempt to cleanup stale remnants of the notifier subsystem.Joe Mistachkin12 years tkt_4d5ae7d88a[4d5ae7d88a] Restore default-to-error logic in TcpConnectgahr9 years unbreak_tclcompilerPartial revert of [a16752c252] bug fix to stop crashes in buggy tclcompiler.dgp13 years unknown_rewritemerge trunkdgp13 years unprovenwipdgp15 years unsetThreadDataAlso finalize the condition variables for each notifier thread.Joe Mistachkin12 years unwantedmerge trunkdgp9 years updateextended* added some docco for [update] changes.colin10 years vc_reformAdd default-* targetsapnadkarni8 years vs_ide_compilemerge core-8-5-branchjan.nijtmans9 years werner_utf_max_6Patches by Christian Werner, supporting TCL_UTF_MAX=6 on Windows. Doesn't wor...jan.nijtmans10 years win32_armSupport compiling Tcl for Win32 on ARM.Joe Mistachkin12 years winFixesmerge core-8-6-branch. Undo changes to coffbase.txt (they cause overlap with Tk)jan.nijtmans9 years win_console_panicRebase to trunkjan.nijtmans9 years win_sock_async_connect_race_fixsocket -async and gets/puts stall on windows (Ticket [336441ed59]) andreask12 years z_modifierMerge trunkjan.nijtmans9 years zipfsMerge core-8-6-branch, fallback for MAP_FILEjan.nijtmans9 years zippy_fifoReduce the list walking by keeping lastPtr fields.dgp11 years zlib_1_2_6[Frq 3483854] zlib-1.2.6jan.nijtmans14 years