1
2
3
4
5
6
7
8
9
10
|
TIP: 72
Title: 64-Bit Value Support for Tcl on 32-Bit Platforms
Version: $Revision: 1.4 $
Author: Donal K. Fellows <[email protected]>
State: Draft
Type: Project
Vote: Pending
Created: 05-Nov-2001
Post-History:
Tcl-Version: 8.4
|
|
|
1
2
3
4
5
6
7
8
9
10
|
TIP: 72
Title: 64-Bit Value Support for Tcl on 32-Bit Platforms
Version: $Revision: 1.5 $
Author: Donal K. Fellows <[email protected]>
State: Draft
Type: Project
Vote: Pending
Created: 05-Nov-2001
Post-History:
Tcl-Version: 8.4
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
6. ''Tcl_Seek'' and ''Tcl_Tell'' (together will all channel drivers)
will be updated to use the new 64-bit type for offsets (which will
reflect at the Tcl level in the [[seek]] and [[tell]] commands)
though a compatibility interface for old extensions that do not
supply a channel driver will be maintained (though the size of
offset reportable through the interface will naturally be limited.)
7. 'Tcl_FSStat'' and ''Tcl_FSLstat'' will all be
updated to use a stat structure reference that can contain 64-bit
wide values. This will enable various [[file]] subcommands (and
[[glob]] with some options) to work correctly with files over 2GB
in size. Note that there is no neat way to do this in a backward
compatible way as there is currently no guarantee on which fields
will actually be present in the structure, but those functions
have never been available outside an alpha...
|
|
|
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
6. ''Tcl_Seek'' and ''Tcl_Tell'' (together will all channel drivers)
will be updated to use the new 64-bit type for offsets (which will
reflect at the Tcl level in the [[seek]] and [[tell]] commands)
though a compatibility interface for old extensions that do not
supply a channel driver will be maintained (though the size of
offset reportable through the interface will naturally be limited.)
7. ''Tcl_FSStat'' and ''Tcl_FSLstat'' will all be
updated to use a stat structure reference that can contain 64-bit
wide values. This will enable various [[file]] subcommands (and
[[glob]] with some options) to work correctly with files over 2GB
in size. Note that there is no neat way to do this in a backward
compatible way as there is currently no guarantee on which fields
will actually be present in the structure, but those functions
have never been available outside an alpha...
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
10. New compatibility functions will also be provided, because not
all platforms have convenient equivalent functions to ''strtoll''
and ''strtoull''.
11. ''Tcl_LinkVar'' will be extended to be given the ability to link
with a wide C variable (via a TCL_LINK_WIDE_INT flag).
~ Summary of Incompatibilities and Fixes
The behaviour of expressions containing constants that appear positive
but which have a negative internal representation will change, as
these will now usually be interpreted as wide integers. This is
always fixable by replacing the constant with ''int(''constant'')''.
|
>
>
>
>
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
10. New compatibility functions will also be provided, because not
all platforms have convenient equivalent functions to ''strtoll''
and ''strtoull''.
11. ''Tcl_LinkVar'' will be extended to be given the ability to link
with a wide C variable (via a TCL_LINK_WIDE_INT flag).
12. The ''tcl_platform'' array will gain a new member, ''wordSize'',
which will give the native size of machine words on the host
platform (actually whatever ''sizeof(long)'' returns.)
~ Summary of Incompatibilities and Fixes
The behaviour of expressions containing constants that appear positive
but which have a negative internal representation will change, as
these will now usually be interpreted as wide integers. This is
always fixable by replacing the constant with ''int(''constant'')''.
|