Tcl Source Code

Check-in [94ecf8fbd4]
Login

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

Overview
Comment:WIP
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | dgp-review
Files: files | file ages | folders
SHA3-256: 94ecf8fbd46e2f61f5c88cb7e19e08536d19ca19b0ff20e4c0e7c44072feade6
User & Date: dgp 2020-01-20 19:09:30
Context
2020-01-20
19:36
WIP check-in: 28b9760596 user: dgp tags: dgp-review
19:09
WIP check-in: 94ecf8fbd4 user: dgp tags: dgp-review
18:32
WIP check-in: d084e89d50 user: dgp tags: dgp-review
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to doc/dev/value-history.md.

367
368
369
370
371
372
373
374
375
376
377
378
379
380
381

and a new public routine **Tcl_CreateObjCommand** to create commands 
implemented using the new command procedure signature. Commands using the
new signature have the ability to receive the complete argument set of
Tcl 8.0 as arguments.  An arbitrary Tcl 8.0 value can be returned 
using a call to **Tcl_SetObjResult**.  One of these commands can be
evaluated by use of the old routine **Tcl_Eval** or the new routine
**Tcl_EvalObj** when the script to be evaluated itself includes
the __NUL__ byte. The caller then retrieves the result of the evaluated
command with a call to **Tcl_GetObjResult**.  A new routine
**Tcl_GetStringResult** allows the interpreter result to be retrieved
as a **NUL**-terminated string, with the corresponding truncation at
any **NUL** byte that might be in it. This is not a recommended routine,
but it is an improvement over direct access to the _interp_->_result_
field, which Tcl 8.0 declares deprecated.  All Tcl operations that need







|







367
368
369
370
371
372
373
374
375
376
377
378
379
380
381

and a new public routine **Tcl_CreateObjCommand** to create commands 
implemented using the new command procedure signature. Commands using the
new signature have the ability to receive the complete argument set of
Tcl 8.0 as arguments.  An arbitrary Tcl 8.0 value can be returned 
using a call to **Tcl_SetObjResult**.  One of these commands can be
evaluated by use of the old routine **Tcl_Eval** or the new routine
**Tcl_EvalObj** when the script to be evaluated itself might include
the __NUL__ byte. The caller then retrieves the result of the evaluated
command with a call to **Tcl_GetObjResult**.  A new routine
**Tcl_GetStringResult** allows the interpreter result to be retrieved
as a **NUL**-terminated string, with the corresponding truncation at
any **NUL** byte that might be in it. This is not a recommended routine,
but it is an improvement over direct access to the _interp_->_result_
field, which Tcl 8.0 declares deprecated.  All Tcl operations that need
441
442
443
444
445
446
447






448

449










450
451
452

453
454
455
	<
```
</pre>

Others are largely masked by the use of the bytecode compiler and 
execution engine, also new in Tcl 8.0.







limitations












## Tcl 8.1

*Representation in an internal encoding*











>
>
>
>
>
>
|
>

>
>
>
>
>
>
>
>
>
>
|

|
>



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
	<
```
</pre>

Others are largely masked by the use of the bytecode compiler and 
execution engine, also new in Tcl 8.0.

Several routines, both public and private, and a number of established
data structures continue to make use of **NUL**-terminated strings. Because
of this, although the fully general set of Tcl values includes all
binary sequences, several components of Tcl remain limited, and may
not include the **NUL** byte. Examples include command names, namespace names,
channel names, channel type names, **Tcl_ObjType** names, and likely more.

## Tcl 8.1 (Development begun 1997, Official release 1999-)

*Representation with an encoding of the Unicode Universal Character Set (UCS)*

A major re-thinking of Tcl values began in 1997 as work toward Tcl 8.1
began. The reconciliation of Unicode 1.1 and ISO-10646 into agreement
showed a clear path forward for software to manage text encodings under
one organized plan.  The publication of RFC 2044 describing a UTF-8
encoding for With this new future vision of text management in
software, the notion that programmers could benefit from being shielded
from the need to deal with encodings rapidly vanished.  In contrast, the
value of joining in support of a developing standard was apparent.  During
the development of Tcl 8.1,