Check-in [cecc0dd69e]

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Edited tip/530.md
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: cecc0dd69ea36971e44585dac628065e7c9f98baad82776c36ff3b6b24b5a8b6
User & Date: leon 2018-12-14 19:08:50
Context
2018-12-17
04:36
Merged a fork check-in: 4f351811b4 user: leon tags: trunk
2018-12-14
19:08
Edited tip/530.md check-in: cecc0dd69e user: leon tags: trunk
2018-12-13
13:37
New TIP 530 check-in: 99daffc5b5 user: leon tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to tip/530.md.

    13     13   
    14     14   A compile-time macro and an environment variable are introduced which enable a
    15     15   user of Tcl to trade some functionality brought by [[280]](280.md) for better
    16     16   performance.
    17     17   
    18     18   # Background and Motivation
    19     19   
    20         -[[280]](280.md) extended Tcl's abilities for introspection with the **info frame**
    21         -command able to determine the location of its call, i.e., the name of the file
    22         -the code is in, and the absolute line number in that file.
           20  +[[280]](280.md) extended Tcl's abilities for introspection with the
           21  +**info frame** command able to determine the location of its call, i.e.,
           22  +the name of the file the code is in, and the absolute line number in that file.
    23     23   
    24         -Though that functionality is very useful while debugging Tcl scripts it hardly
    25         -has any other use, while at the same, due to the peculiarity of its
    26         -implementation, negatively impacting the performance of Tcl code. The issue has
    27         -first been discussed at [comp.lang.tcl](https://groups.google.com/forum/#!topic/comp.lang.tcl/Qd0Q11CxjgQ).
           24  +Though that functionality was very useful while debugging Tcl scripts it hardly
           25  +had any other use, while at the same time negatively impacting the performance
           26  +of Tcl code. [[378]](378.md) has already addressed the most critical degradation
           27  +of performance caused by [[280]](280.md), however a milder slowdown has remained.
           28  +The mere fact that line continuations are tracked unconditionally and such
           29  +information, if present, is associated with a respective Tcl object through
           30  +an external hash map results in a relatively expensive check performed in
           31  +TclFreeObj() for every single object. The issue has first been discussed at
           32  +[comp.lang.tcl](https://groups.google.com/forum/#!topic/comp.lang.tcl/Qd0Q11CxjgQ).
    28     33   
    29         -This TIP now proposes to put the execution of some part of [[280]](280.md)'s
    30         -implementation under user control, allowing them to trade **info
    31         -frame**-exactness for speed, and vice versa.
           34  +This TIP now proposes to put the execution of the respective part of
           35  +[[280]](280.md)'s implementation under user control, allowing them to trade
           36  +**info frame**-exactness for speed, and vice versa.
    32     37   
    33     38   # Run-time control
    34     39   
    35     40   The environment variable `TCL_INFO_FRAME_ENABLE_ACCURATE_LINE_NUMBERS` is
    36     41   checked during the startup of the main Tcl interpreter and handling of line
    37     42   continuations is fixed till the end of execution as follows:
    38     43