Tcl Source Code

View Ticket
Login
Ticket UUID: 1055216
Title: Variable flag reform
Type: Patch Version: None
Submitter: msofer Created on: 2004-10-27 11:31:12
Subsystem: 07. Variables Assigned To: msofer
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2007-10-28 09:11:45
Resolution: Out of Date Closed By: msofer
    Closed on: 2007-10-28 02:11:45
Description:
Changelog entry of the enclosed patch is:

 * generic/tclVar.c: simplification of the variable
logic; three
flag masks (VAR_SCALAR, VAR_UNDEFINED and
VAR_ARGUMENT) are not
used any longer.

*** POTENTIAL INCOMPATIBILITY ***
Extensions that include tclInt.h and directly access
the variable
flag values will definitely lose binary compatibility
due to
changes in some macro definitions. Source
compatibility may also
be affected depending on the details, and needs
reviewing. 
Extensions that might be impacted include procomp,
tbcload, itcl and
xotcl. 

I think that this simplification is important, as it
makes the handling of variables simpler and faster. The
changes required to any extension accessing VAR_* flags
or Tcl(SET|Clear|Is)Var* macros are small and simple.

But I am still somewhat wary of breaking so many
important extensions. OTOH, when if not in alpha?
Decisions ...

Requesting comments.
User Comments: msofer added on 2007-10-28 09:11:45:
Logged In: YES 
user_id=148712
Originator: YES

VAR_SCALAR and VAR_UNDEFINED are gone with varReform [Patch 1750051].

msofer added on 2004-10-29 04:05:33:

File Added - 106866: varflags2.diff

Logged In: YES 
user_id=148712

I'll hold on until the day after 8.5a2 is branched ...
If we're already breaking compat, here's some more
modifications. No benchmarks yet.

dgp added on 2004-10-28 22:51:57:
Logged In: YES 
user_id=80530

confirmed this changes breaks
both binary and source compatibility
with both XOTcl and Itcl.

I'd be shy about committing this
until we at least identify the
patches to those extensions that
will restore them to working.
Unlikely to be suitable for
commit before 8.5a2 release, IMO.

dkf added on 2004-10-28 19:38:33:
Logged In: YES 
user_id=79902

Itcl has already been broken for 8.5 anyway; you might as
well plunge onwards ;)

msofer added on 2004-10-27 18:37:31:
Logged In: YES 
user_id=148712

Further note: Some unused flag values have been kept, some
unneeded macros have been defined to do nothing - hoping
that this simplifies the porting effort. 
The missing flag values are ignored. This may be important
for tbc files prepared prior to this patch to run, at least
until the tbcload developers take a look and/or make
whatever changes are necessary.

msofer added on 2004-10-27 18:31:13:

File Added - 106669: varflags.diff

Attachments: