|
From: Donal F. <don...@ma...> - 2025-09-15 13:50:58
|
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md
Please send your votes to this list (preferably in reply to this message so I stand a chance of finding them in my inbox!) by [clock format 1758538800] (12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and that I've seen Ashok's concerns, but aren't going to delay; I feel quite strongly that having some TIPs in discussion shouldn't be a reason for blocking votes on other TIPs, as that would be a recipe for stasis just by having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in this email, but I think they're better in the TIPs themselves.)
Donal.
|
|
From: Brian G. <bri...@ea...> - 2025-09-15 21:10:19
|
On Sep 15, 2025, at 06:50, Donal Fellows <don...@ma...> wrote:
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md
I should have comment on this earlier.
Why is this not just an internal optimization performed the first time a switch is entered? It would add a 1 time cost, but after that the gain should be good. Why must the coder decide?
-Brian
Please send your votes to this list (preferably in reply to this message so I stand a chance of finding them in my inbox!) by [clock format 1758538800] (12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and that I've seen Ashok's concerns, but aren't going to delay; I feel quite strongly that having some TIPs in discussion shouldn't be a reason for blocking votes on other TIPs, as that would be a recipe for stasis just by having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in this email, but I think they're better in the TIPs themselves.)
Donal.
_______________________________________________
Tcl-Core mailing list
Tcl...@li...<mailto:Tcl...@li...>
https://lists.sourceforge.net/lists/listinfo/tcl-core
|
|
From: <apn...@ya...> - 2025-09-16 02:29:14
|
Donal,
As a point of clarification, I certainly did not say, or at least mean to
say, that CFV's should be held up while other TIP's are in discussion. That
would be.absurd! My point was 5 days between announcement of a TIP to a CFV
was too short (for 730, a couple of days more for 728) even in an absolute
sense. The reference to the other TIP's was only to point out that the
limited time people have for OSS was further reduced by discussions already
ongoing and other work that might be in progress. I didn't think any TIP
could get anything more than a cursory review in such a short time frame.
No matter, folks will review to the extent they feel necessary to form an
opinion and vote accordingly.
/Ashok
From: Donal Fellows <don...@ma...>
Sent: Monday, September 15, 2025 7:21 PM
To: Tcl Core <tcl...@li...>
Subject: [TCLCORE] CFV: TIP 728, 730
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka
interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md
Please send your votes to this list (preferably in reply to this message so
I stand a chance of finding them in my inbox!) by [clock format 1758538800]
(12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and
that I've seen Ashok's concerns, but aren't going to delay; I feel quite
strongly that having some TIPs in discussion shouldn't be a reason for
blocking votes on other TIPs, as that would be a recipe for stasis just by
having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in
this email, but I think they're better in the TIPs themselves.)
Donal.
|
|
From: <apn...@ya...> - 2025-09-21 17:34:39
|
TIP 730: YES (already voted)
TIP 728: YES
/Ashok
From: Donal Fellows <don...@ma...
<mailto:don...@ma...> >
Sent: Monday, September 15, 2025 7:21 PM
To: Tcl Core <tcl...@li...
<mailto:tcl...@li...> >
Subject: [TCLCORE] CFV: TIP 728, 730
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka
interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md
Please send your votes to this list (preferably in reply to this message so
I stand a chance of finding them in my inbox!) by [clock format 1758538800]
(12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and
that I've seen Ashok's concerns, but aren't going to delay; I feel quite
strongly that having some TIPs in discussion shouldn't be a reason for
blocking votes on other TIPs, as that would be a recipe for stasis just by
having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in
this email, but I think they're better in the TIPs themselves.)
Donal.
|
|
From: <apn...@ya...> - 2025-09-18 11:38:49
|
TIP 730: Yes. Long awaited.
One very, very minor nit. Clarify in manpage that "integer" means as in
"string is wideinteger" and not "string is integer".
And one question arising from experimentation (actually nothing to do with
730, applies to -glob etc. as well). Consider the following disassembly. The
following is not bytecompiled:
% 'dis script {switch -integer $x {0 {puts 0} 1 {puts 1}}}
ByteCode 0x2c7743e0750, refCt 1, epoch 21, interp 0x2c774362be0 (epoch 21)
Source "switch -integer $x {0 {puts 0} 1 {puts 1}}"
Cmds 1, src 43, inst 27, litObjs 4, aux 0, stkDepth 4, code/src 0.00
Commands 1:
1: pc 0-25, src 0-42
Command 1: "switch -integer $x {0 {puts 0} 1 {puts 1}}"
(0) push 0 # "switch"
(5) push 1 # "-integer"
(10) push 2 # "x"
(15) loadStk
(16) push 3 # "0 {puts 0} 1 {puts 1}"
(21) invokeStk 4
(26) done
while on the other hand the following is:
% 'dis script {switch -integer -- $x {0 {puts 0} 1 {puts 1}}}
ByteCode 0x2c7743e0550, refCt 1, epoch 21, interp 0x2c774362be0 (epoch 21)
Source "switch -integer -- $x {0 {puts 0} 1 {puts 1}}"
Cmds 3, src 45, inst 62, litObjs 5, aux 1, stkDepth 2, code/src 0.00
Commands 3:
1: pc 0-60, src 0-44 2: pc 16-30, src 26-31
3: pc 36-50, src 37-42
Command 1: "switch -integer -- $x {0 {puts 0} 1 {puts 1}}"
(0) push 0 # "x"
(5) loadStk
(6) jumpTableNum 0
[1->pc 36, 0->pc 16]
(11) jump +45 # pc 56
Command 2: "puts 0..."
(16) push 1 # "puts"
(21) push 2 # "0"
(26) invokeStk 2
(31) jump +30 # pc 61
Command 3: "puts 1..."
(36) push 1 # "puts"
(41) push 3 # "1"
(46) invokeStk 2
(51) jump +10 # pc 61
(56) push 4 # ""
(61) done
The difference is the presence of "-" and presumably arises because of
ambiguity. Does that mean in order to get a byte compiled switch one should
always specify "-" ?
/Ashok
From: Donal Fellows <don...@ma...>
Sent: Monday, September 15, 2025 7:21 PM
To: Tcl Core <tcl...@li...>
Subject: [TCLCORE] CFV: TIP 728, 730
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka
interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md
Please send your votes to this list (preferably in reply to this message so
I stand a chance of finding them in my inbox!) by [clock format 1758538800]
(12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and
that I've seen Ashok's concerns, but aren't going to delay; I feel quite
strongly that having some TIPs in discussion shouldn't be a reason for
blocking votes on other TIPs, as that would be a recipe for stasis just by
having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in
this email, but I think they're better in the TIPs themselves.)
Donal.
|
|
From: Donal F. <don...@ma...> - 2025-09-22 17:25:34
|
Does that mean in order to get a byte compiled switch one should always specify “—” ?
No. Due to technical changes (I forget exactly when), [switch] with just a value and a list of pattern/bodies is also bytecode compiled (using exact string matching). This is justified by the fact that any other interpretation results in a syntax error.
But with [switch -integer], no such luck. You need the double-hyphen to get bytecode compilation, just as with -glob. Or maybe we could if there were exactly three arguments... but it's an ambiguous case so we just punt. The bytecode compiler is very conservative.
Donal.
________________________________
From: apn...@ya... <apn...@ya...> on behalf of apn...@ya... <apn...@ya...>
Sent: Thursday, September 18, 2025 12:38
To: Donal Fellows <don...@ma...>; 'Tcl Core' <tcl...@li...>
Subject: RE: [TCLCORE] CFV: TIP 728, 730
TIP 730: Yes. Long awaited.
One very, very minor nit. Clarify in manpage that “integer” means as in “string is wideinteger” and not “string is integer”.
And one question arising from experimentation (actually nothing to do with 730, applies to -glob etc. as well). Consider the following disassembly. The following is not bytecompiled:
% 'dis script {switch -integer $x {0 {puts 0} 1 {puts 1}}}
ByteCode 0x2c7743e0750, refCt 1, epoch 21, interp 0x2c774362be0 (epoch 21)
Source "switch -integer $x {0 {puts 0} 1 {puts 1}}"
Cmds 1, src 43, inst 27, litObjs 4, aux 0, stkDepth 4, code/src 0.00
Commands 1:
1: pc 0-25, src 0-42
Command 1: "switch -integer $x {0 {puts 0} 1 {puts 1}}"
(0) push 0 # "switch"
(5) push 1 # "-integer"
(10) push 2 # "x"
(15) loadStk
(16) push 3 # "0 {puts 0} 1 {puts 1}"
(21) invokeStk 4
(26) done
while on the other hand the following is:
% 'dis script {switch -integer -- $x {0 {puts 0} 1 {puts 1}}}
ByteCode 0x2c7743e0550, refCt 1, epoch 21, interp 0x2c774362be0 (epoch 21)
Source "switch -integer -- $x {0 {puts 0} 1 {puts 1}}"
Cmds 3, src 45, inst 62, litObjs 5, aux 1, stkDepth 2, code/src 0.00
Commands 3:
1: pc 0-60, src 0-44 2: pc 16-30, src 26-31
3: pc 36-50, src 37-42
Command 1: "switch -integer -- $x {0 {puts 0} 1 {puts 1}}"
(0) push 0 # "x"
(5) loadStk
(6) jumpTableNum 0
[1->pc 36, 0->pc 16]
(11) jump +45 # pc 56
Command 2: "puts 0..."
(16) push 1 # "puts"
(21) push 2 # "0"
(26) invokeStk 2
(31) jump +30 # pc 61
Command 3: "puts 1..."
(36) push 1 # "puts"
(41) push 3 # "1"
(46) invokeStk 2
(51) jump +10 # pc 61
(56) push 4 # ""
(61) done
The difference is the presence of “—” and presumably arises because of ambiguity. Does that mean in order to get a byte compiled switch one should always specify “—” ?
/Ashok
From: Donal Fellows <don...@ma...>
Sent: Monday, September 15, 2025 7:21 PM
To: Tcl Core <tcl...@li...>
Subject: [TCLCORE] CFV: TIP 728, 730
Hi everyone
This a CFV on two small feature TIPs:
TIP 728: Reliable Read and Write of Child Interpreter Variables (aka interp set)
https://core.tcl-lang.org/tips/doc/trunk/tip/728.md [core.tcl-lang.org]<https://urldefense.com/v3/__https://core.tcl-lang.org/tips/doc/trunk/tip/728.md__;!!PDiH4ENfjr2_Jw!DEng-7V61ptn5PNVuFfqQDfMXQ43sRknMy_5vewRapsnki6mLfPvPViFB67i7K2GEOYBgii4FbzglPhC5-6VgCfszehZnA3GN6cu$>
TIP 730: Switching by Integers (aka switch -integer)
https://core.tcl-lang.org/tips/doc/trunk/tip/730.md [core.tcl-lang.org]<https://urldefense.com/v3/__https://core.tcl-lang.org/tips/doc/trunk/tip/730.md__;!!PDiH4ENfjr2_Jw!DEng-7V61ptn5PNVuFfqQDfMXQ43sRknMy_5vewRapsnki6mLfPvPViFB67i7K2GEOYBgii4FbzglPhC5-6VgCfszehZnLP0o85E$>
Please send your votes to this list (preferably in reply to this message so I stand a chance of finding them in my inbox!) by [clock format 1758538800] (12:00 my time, next Monday).
My votes follow:
TIP 728: YES
TIP 730: YES
Also, let it be known that I have seen Harald's votes for both of these, and that I've seen Ashok's concerns, but aren't going to delay; I feel quite strongly that having some TIPs in discussion shouldn't be a reason for blocking votes on other TIPs, as that would be a recipe for stasis just by having a discussion open.
I've added some compatibility notes to the TIPs. (They were originally in this email, but I think they're better in the TIPs themselves.)
Donal.
|
|
From: Jan N. <jan...@gm...> - 2025-09-18 12:15:52
|
Op do 18 sep 2025 om 13:39 schreef apnmbx-public--- via Tcl-Core
<tcl...@li...>:
> One very, very minor nit. Clarify in manpage that “integer” means as in “string is wideinteger” and not “string is integer”.
In Tcl9 “string is wideinteger” and “string is integer” are exactly the same ;-)
Regards,
Jan Nijtmans
|
|
From: Jan N. <jan...@gm...> - 2025-09-18 12:17:08
|
Op do 18 sep 2025 om 14:15 schreef Jan Nijtmans <jan...@gm...>:
>
> Op do 18 sep 2025 om 13:39 schreef apnmbx-public--- via Tcl-Core
> <tcl...@li...>:
> > One very, very minor nit. Clarify in manpage that “integer” means as in “string is wideinteger” and not “string is integer”.
>
> In Tcl9 “string is wideinteger” and “string is integer” are exactly the same ;-)
Hm .... I'm mistaken. Please ignore my comment
Regards,
Jan Nijtmans
|
|
From: Steve L. <st...@di...> - 2025-09-22 07:15:06
|
TIP #728: YES TIP #730: YES -- Steve On 15 Sep 2025 at 9:52 PM +0800, Donal Fellows <don...@ma...>, wrote: > Hi everyone > This a CFV on two small feature TIPs: > TIP 728: Reliable Read and Write of Child Interpreter Variables (aka interp set) https://core.tcl-lang.org/tips/doc/trunk/tip/728.md > TIP 730: Switching by Integers (aka switch -integer) https://core.tcl-lang.org/tips/doc/trunk/tip/730.md > Please send your votes to this list (preferably in reply to this message so I stand a chance of finding them in my inbox!) by [clock format 1758538800] (12:00 my time, next Monday). |
|
From: Marc C. <cul...@gm...> - 2025-09-22 17:21:50
|
TIP #728: YES TIP #730: YES - Marc On Mon, Sep 15, 2025 at 7:51 AM Donal Fellows < don...@ma...> wrote: > Hi everyone > > This a CFV on two small feature TIPs: > > TIP 728: *Reliable Read and Write of Child Interpreter Variables* (aka * > interp set*) > https://core.tcl-lang.org/tips/doc/trunk/tip/728.md > > TIP 730: *Switching by Integers* (aka *switch -integer*) > https://core.tcl-lang.org/tips/doc/trunk/tip/730.md > > Please send your votes to this list (preferably in reply to this message > so I stand a chance of finding them in my inbox!) by [clock format > 1758538800] (12:00 my time, next Monday). > > My votes follow: > > TIP 728: YES > TIP 730: YES > > Also, let it be known that I have seen Harald's votes for both of these, > and that I've seen Ashok's concerns, but aren't going to delay; I feel > quite strongly that having some TIPs in discussion shouldn't be a reason > for blocking votes on other TIPs, as that would be a recipe for stasis just > by having a discussion open. > > I've added some compatibility notes to the TIPs. (They were originally in > this email, but I think they're better in the TIPs themselves.) > > Donal. > _______________________________________________ > Tcl-Core mailing list > Tcl...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-core > |