Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

I bet the human brain is a kludge. -- Marvin Minsky


devel / comp.lang.tcl / Strange behaviour of [dict exists]

SubjectAuthor
* Strange behaviour of [dict exists]Alan Grunwald
+* Re: Strange behaviour of [dict exists]Steve Bennett
|+- Re: Strange behaviour of [dict exists]Christian Gollwitzer
|`* Re: Strange behaviour of [dict exists]Rich
| `- Re: Strange behaviour of [dict exists]Steve Bennett
`* Re: Strange behaviour of [dict exists]apn
 `* Re: Strange behaviour of [dict exists]Alan Grunwald
  `- Re: Strange behaviour of [dict exists]heinrichmartin

1
Strange behaviour of [dict exists]

<tbuvj2$38u73$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19712&group=comp.lang.tcl#19712

  copy link   Newsgroups: comp.lang.tcl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: nospam.nurdglaw@gmail.com (Alan Grunwald)
Newsgroups: comp.lang.tcl
Subject: Strange behaviour of [dict exists]
Date: Thu, 28 Jul 2022 22:37:16 +0100
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <tbuvj2$38u73$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 28 Jul 2022 21:37:38 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="33324541fe96fb8c787fc2c6f86f8dce";
logging-data="3438819"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ThdA3b7aJiQm1FcMDEEVZdHWNblQLztQ="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.11.0
Cancel-Lock: sha1:MfluGKorlAH7nPsSw2p/9aKDNxw=
Content-Language: en-US
 by: Alan Grunwald - Thu, 28 Jul 2022 21:37 UTC

I've spent several not-so-happy hours today searching for a bug caused
by someone doing

[dict exists foo garp]

instead of

[dict exists $foo garp]

I'm surprised that the former code works since, for example [dict get
foo] and [dict size foo] throw an exception if you miss out the dollar
sign. Is this a bug? If not, what benefit does this anomalous behaviour
of [dict exists] bring with it?

Thanks.

Re: Strange behaviour of [dict exists]

<926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19713&group=comp.lang.tcl#19713

  copy link   Newsgroups: comp.lang.tcl
X-Received: by 2002:a05:6214:2a8b:b0:474:89bf:ca32 with SMTP id jr11-20020a0562142a8b00b0047489bfca32mr681673qvb.43.1659045862852;
Thu, 28 Jul 2022 15:04:22 -0700 (PDT)
X-Received: by 2002:a05:6830:280e:b0:61d:401:afe1 with SMTP id
w14-20020a056830280e00b0061d0401afe1mr395838otu.358.1659045862544; Thu, 28
Jul 2022 15:04:22 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.tcl
Date: Thu, 28 Jul 2022 15:04:22 -0700 (PDT)
In-Reply-To: <tbuvj2$38u73$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=159.196.12.36; posting-account=YfjdmwoAAABFXkZI30zDyVM7AnEO5WTj
NNTP-Posting-Host: 159.196.12.36
References: <tbuvj2$38u73$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>
Subject: Re: Strange behaviour of [dict exists]
From: steveb@workware.net.au (Steve Bennett)
Injection-Date: Thu, 28 Jul 2022 22:04:22 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Steve Bennett - Thu, 28 Jul 2022 22:04 UTC

% dict exists foo garp
missing value to go with key

Maybe you inadvertently caught the exception

On Friday, July 29, 2022 at 7:37:42 AM UTC+10, Alan Grunwald wrote:
> I've spent several not-so-happy hours today searching for a bug caused
> by someone doing
>
> [dict exists foo garp]
>
> instead of
>
> [dict exists $foo garp]
>
> I'm surprised that the former code works since, for example [dict get
> foo] and [dict size foo] throw an exception if you miss out the dollar
> sign. Is this a bug? If not, what benefit does this anomalous behaviour
> of [dict exists] bring with it?
>
> Thanks.

Re: Strange behaviour of [dict exists]

<tbv2sh$399tu$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19714&group=comp.lang.tcl#19714

  copy link   Newsgroups: comp.lang.tcl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: auriocus@gmx.de (Christian Gollwitzer)
Newsgroups: comp.lang.tcl
Subject: Re: Strange behaviour of [dict exists]
Date: Fri, 29 Jul 2022 00:33:52 +0200
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <tbv2sh$399tu$1@dont-email.me>
References: <tbuvj2$38u73$1@dont-email.me>
<926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 28 Jul 2022 22:33:53 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="32096a520e9c63a9526a444d6fd23afb";
logging-data="3450814"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19iBGD3jb3BrNF0tzI7yqiRXBTlwk+N8ck="
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.11.0
Cancel-Lock: sha1:7U+i9UUkIgGlBQSmExL5CYJpDMc=
In-Reply-To: <926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>
 by: Christian Gollwitzer - Thu, 28 Jul 2022 22:33 UTC

Am 29.07.22 um 00:04 schrieb Steve Bennett:
> % dict exists foo garp
> missing value to go with key
>
> Maybe you inadvertently caught the exception
>

(chris) 50 % info patchlevel
8.6.9
(chris) 51 % dict exists foo garp
0

What is your patchlevel?

Christian

Re: Strange behaviour of [dict exists]

<tbvb9p$3a3ct$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19715&group=comp.lang.tcl#19715

  copy link   Newsgroups: comp.lang.tcl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: palmtcl@yahoo.com (apn)
Newsgroups: comp.lang.tcl
Subject: Re: Strange behaviour of [dict exists]
Date: Fri, 29 Jul 2022 06:27:29 +0530
Organization: A noiseless patient Spider
Lines: 19
Message-ID: <tbvb9p$3a3ct$1@dont-email.me>
References: <tbuvj2$38u73$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 29 Jul 2022 00:57:29 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="112bc20b6cf8233e09148f711547cd56";
logging-data="3476893"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+rt6qntOckc66MtyfK6UsR"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Cancel-Lock: sha1:aypOwvwngxIWwJdZUmHqfwf5Ups=
In-Reply-To: <tbuvj2$38u73$1@dont-email.me>
Content-Language: en-US
 by: apn - Fri, 29 Jul 2022 00:57 UTC

On 7/29/2022 3:07 AM, Alan Grunwald wrote:
> I've spent several not-so-happy hours today searching for a bug caused
> by someone doing
>
>         [dict exists foo garp]
>
> instead of
>
>         [dict exists $foo garp]
>
> I'm surprised that the former code works since, for example [dict get
> foo] and [dict size foo] throw an exception if you miss out the dollar
> sign. Is this a bug? If not, what benefit does this anomalous behaviour
> of [dict exists] bring with it?
>
> Thanks.

See https://core.tcl-lang.org/tcl/tktview/3598385fffffffffffff for the
discussion on this. fwiw

Re: Strange behaviour of [dict exists]

<tbvgib$3dag6$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19716&group=comp.lang.tcl#19716

  copy link   Newsgroups: comp.lang.tcl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: rich@example.invalid (Rich)
Newsgroups: comp.lang.tcl
Subject: Re: Strange behaviour of [dict exists]
Date: Fri, 29 Jul 2022 02:27:24 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 31
Message-ID: <tbvgib$3dag6$1@dont-email.me>
References: <tbuvj2$38u73$1@dont-email.me> <926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>
Injection-Date: Fri, 29 Jul 2022 02:27:24 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="c4c5f11bfebc9740be2c6d01a6d0fffc";
logging-data="3582470"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19tq+Sp13mJmNCB+/0aPvzb"
User-Agent: tin/2.0.1-20111224 ("Achenvoir") (UNIX) (Linux/3.10.17 (x86_64))
Cancel-Lock: sha1:3yfJlVerqfbPpZzbmr9FP7dKgik=
 by: Rich - Fri, 29 Jul 2022 02:27 UTC

Steve Bennett <steveb@workware.net.au> wrote:
> On Friday, July 29, 2022 at 7:37:42 AM UTC+10, Alan Grunwald wrote:
>> I've spent several not-so-happy hours today searching for a bug caused
>> by someone doing
>>
>> [dict exists foo garp]
>>
>> instead of
>>
>> [dict exists $foo garp]
>>
>> I'm surprised that the former code works since, for example [dict get
>> foo] and [dict size foo] throw an exception if you miss out the dollar
>> sign. Is this a bug? If not, what benefit does this anomalous behaviour
>> of [dict exists] bring with it?
>>
>> Thanks.
>
> % dict exists foo garp
> missing value to go with key
>
> Maybe you inadvertently caught the exception

On 8.6.11 I get what the OP reported:

$ rlwrap tclsh
% set tcl_patchLevel
8.6.11
% dict exists foo garp
0 %

Re: Strange behaviour of [dict exists]

<5b53c89a-d561-4458-b810-1e8460b3c0c5n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19717&group=comp.lang.tcl#19717

  copy link   Newsgroups: comp.lang.tcl
X-Received: by 2002:ad4:5ccf:0:b0:474:7201:6789 with SMTP id iu15-20020ad45ccf000000b0047472016789mr2348863qvb.75.1659081546657;
Fri, 29 Jul 2022 00:59:06 -0700 (PDT)
X-Received: by 2002:a05:6870:95a9:b0:101:fa11:2e51 with SMTP id
k41-20020a05687095a900b00101fa112e51mr1107840oao.56.1659081546433; Fri, 29
Jul 2022 00:59:06 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.tcl
Date: Fri, 29 Jul 2022 00:59:06 -0700 (PDT)
In-Reply-To: <tbvgib$3dag6$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=159.196.12.36; posting-account=sHuY2AoAAAA9mx5hjnXnz2DwduvHrVM8
NNTP-Posting-Host: 159.196.12.36
References: <tbuvj2$38u73$1@dont-email.me> <926e5d29-1053-476d-989f-118df1973cffn@googlegroups.com>
<tbvgib$3dag6$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5b53c89a-d561-4458-b810-1e8460b3c0c5n@googlegroups.com>
Subject: Re: Strange behaviour of [dict exists]
From: msteveb@gmail.com (Steve Bennett)
Injection-Date: Fri, 29 Jul 2022 07:59:06 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2244
 by: Steve Bennett - Fri, 29 Jul 2022 07:59 UTC

Fair enough. IMHO they broke it.
Jim Tcl is staying with the old way. What the OP reports is definitely a common scenario.

On Friday, July 29, 2022 at 12:27:28 PM UTC+10, Rich wrote:
> Steve Bennett <ste...@workware.net.au> wrote:
> > On Friday, July 29, 2022 at 7:37:42 AM UTC+10, Alan Grunwald wrote:
> >> I've spent several not-so-happy hours today searching for a bug caused
> >> by someone doing
> >>
> >> [dict exists foo garp]
> >>
> >> instead of
> >>
> >> [dict exists $foo garp]
> >>
> >> I'm surprised that the former code works since, for example [dict get
> >> foo] and [dict size foo] throw an exception if you miss out the dollar
> >> sign. Is this a bug? If not, what benefit does this anomalous behaviour
> >> of [dict exists] bring with it?
> >>
> >> Thanks.
> >
> > % dict exists foo garp
> > missing value to go with key
> >
> > Maybe you inadvertently caught the exception
> On 8.6.11 I get what the OP reported:
>
> $ rlwrap tclsh
> % set tcl_patchLevel
> 8.6.11
> % dict exists foo garp
> 0
> %

Re: Strange behaviour of [dict exists]

<tc0el9$3fu2r$1@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19718&group=comp.lang.tcl#19718

  copy link   Newsgroups: comp.lang.tcl
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: nospam.nurdglaw@gmail.com (Alan Grunwald)
Newsgroups: comp.lang.tcl
Subject: Re: Strange behaviour of [dict exists]
Date: Fri, 29 Jul 2022 12:00:39 +0100
Organization: A noiseless patient Spider
Lines: 39
Message-ID: <tc0el9$3fu2r$1@dont-email.me>
References: <tbuvj2$38u73$1@dont-email.me> <tbvb9p$3a3ct$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 29 Jul 2022 11:00:57 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="9497190a1f855c97b914db3b6f5d7ecb";
logging-data="3668059"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19XNCnZT2QJJwkbxSs3bLeVtropnOJKy+Y="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.11.0
Cancel-Lock: sha1:QIBIbacuiSG+xNIqw9d6KF4zr24=
Content-Language: en-US
In-Reply-To: <tbvb9p$3a3ct$1@dont-email.me>
 by: Alan Grunwald - Fri, 29 Jul 2022 11:00 UTC

On 29/07/2022 01:57, apn wrote:
> On 7/29/2022 3:07 AM, Alan Grunwald wrote:
>> I've spent several not-so-happy hours today searching for a bug caused
>> by someone doing
>>
>>          [dict exists foo garp]
>>
>> instead of
>>
>>          [dict exists $foo garp]
>>
>> I'm surprised that the former code works since, for example [dict get
>> foo] and [dict size foo] throw an exception if you miss out the dollar
>> sign. Is this a bug? If not, what benefit does this anomalous
>> behaviour of [dict exists] bring with it?
>>
>> Thanks.
>
> See https://core.tcl-lang.org/tcl/tktview/3598385fffffffffffff for the
> discussion on this. fwiw

Thanks for pointing me at the ticket(s).

To attempt to answer my second question, the benefit appears to come
with nested dictionaries. The current implementation allows you to
wander around such dictionaries when you don't know how deeply nested it is.

I think that's going to be helpful less often than people forgetting the
dollar sign, but YMMV.

May I take some hope from the fact that the resolution is "Wont fix"
rather than something like "Not a bug"?

For my money the solution would be for [dict exists] to throw an error
and there to be a [string is dict] command, as suggested by mistachkin
on 2012-12-27 in a comment on the ticket.

FWIW I also agree completely with Donal that thrashing backward and
forward is unhelpful.

Re: Strange behaviour of [dict exists]

<f59a4d7c-5f4d-4470-ac46-9cc2972f660cn@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=19719&group=comp.lang.tcl#19719

  copy link   Newsgroups: comp.lang.tcl
X-Received: by 2002:a0c:a88a:0:b0:474:7f16:f272 with SMTP id x10-20020a0ca88a000000b004747f16f272mr3022709qva.4.1659095145449;
Fri, 29 Jul 2022 04:45:45 -0700 (PDT)
X-Received: by 2002:aca:2302:0:b0:33a:5d37:379f with SMTP id
e2-20020aca2302000000b0033a5d37379fmr1389263oie.157.1659095145220; Fri, 29
Jul 2022 04:45:45 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.tcl
Date: Fri, 29 Jul 2022 04:45:45 -0700 (PDT)
In-Reply-To: <tc0el9$3fu2r$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=84.115.233.95; posting-account=Od2xOAoAAACEyRX3Iu5rYt4oevuoeYUG
NNTP-Posting-Host: 84.115.233.95
References: <tbuvj2$38u73$1@dont-email.me> <tbvb9p$3a3ct$1@dont-email.me> <tc0el9$3fu2r$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f59a4d7c-5f4d-4470-ac46-9cc2972f660cn@googlegroups.com>
Subject: Re: Strange behaviour of [dict exists]
From: martin.heinrich@frequentis.com (heinrichmartin)
Injection-Date: Fri, 29 Jul 2022 11:45:45 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 4969
 by: heinrichmartin - Fri, 29 Jul 2022 11:45 UTC

On Friday, July 29, 2022 at 1:01:01 PM UTC+2, Alan Grunwald wrote:
> May I take some hope from the fact that the resolution is "Wont fix"
> rather than something like "Not a bug"?
>
> For my money the solution would be for [dict exists] to throw an error
> and there to be a [string is dict] command, as suggested by mistachkin
> on 2012-12-27 in a comment on the ticket.
>
> FWIW I also agree completely with Donal that thrashing backward and
> forward is unhelpful.

Let me second all that. Throwing an error for invalid data is consistent.
Imho, https://core.tcl-lang.org/tcl/info/3475264 should have been a TIP (and should probably have been declined).

"[...] sort out between yourselves what it should be and I'll willingly make it work that way if it doesn't already. Until then, this issue stays closed."

Independent reporters found this regression in 2012, 2018, and 2022 along with many supporters and hardly anyone opposing; is this representative?
Without any hidden meaning: what is the expected process (medium and decision criteria) to continue?

> > On 7/29/2022 3:07 AM, Alan Grunwald wrote:
> >> I've spent several not-so-happy hours today searching for a bug caused
> >> by someone doing
> >>
> >> [dict exists foo garp]
> >>
> >> instead of
> >>
> >> [dict exists $foo garp]
> >>

We have very basic code checkers in place to fail fast. "Basic" refers to "not a full Tcl parser". I cannot paste the full file, but basically I am using regular expressions with sed.

....
# regexp of suspicious code
# \x24 ... $ (prevent a match in this file known_pitfalls.tcl)
# \x61 ... a (prevent a match in this file known_pitfalls.tcl)
# \< ... beginning of a word
# \> ... end of a word
set forbidden {
# for variable names true and false use ${true} and ${false} respectively
{\x24false\>\|\x24true\>}
# use return "result" if you really mean it
{\<return \+result\>}
# very common spelling mistakes
{\<\x61dress\>}
{\<\(Res\|res\|S\|s\)etted\>}
# string's subcommand concat does not exist in Tcl, was string cat intended?
{\<string \+concat }
# these procedures use variable names (override with ${name})
{\<dict \+\(set\|incr\|append\|lappend\|unset\|update\|with\) \+\$\(\w\|:\)\+}
{\<\(set\|incr\|append\|lappend\|unset\|vwait\|lset\|info \+exists\|info \+vars\) \+\$\(\w\|:\)\+}
{::struct::set \+\(include\|exclude\|add\|subtract\) \+\$\(\w\|:\)\+}
# these procedures take values (use braces)
{\<dict \+\(get\|exists\|filter\|info\|keys\|merge\|remove\|replace\|size\|values\) \+[^\$\{\[ ][^ ]*}
{\<\(lreplace\|lassign\|lindex\|linsert\|llength\|lrange\|lreplace\|lreverse\) \+[^\$\{\[ ][^ ]*}
{::struct::set \+\(empty\|size\|contains\|union\|difference\|symdiff\|intersect3\) \+[^\$\{\[ ][^ ]*}
# always use the optional argument level, default is 1
{\<up\(var\|level\) \+[^$#0-9\\]}
} ....
# erase commented lines in data
set forbidden [join [regsub -all -line {^\s*#.*$} $forbidden {}] {\|}]
set deprecated [join [regsub -all -line {^\s*#.*$} $deprecated {}] {\|}]
set sed [format {
# find suspicious code in single line
s/^ *\([0-9]\+\)\t.*\(%s\).*$/\1: suspicious looking code {\2}/p;t
# if not suspicious, check for deprecated procs
s/^ *\([0-9]\+\)\t\(\|.*;\|.*\[\|.*%s\) *\(%s\) .*$/\1: DEPRECATED proc {\3}/p;t
# if not deprecated, check with the previous line (in hold buffer)
H;x
# indentation when closing nested blocks
s/^ *\([0-9]\+\)\t\( *\}\)\n *\([0-9]\+\)\t\2/\1-\3: suspicious looking code {equal indentation at end of block}/p;t
} $forbidden \{ $deprecated]
....
# - print line numbers
set result [split [exec cat -n $argv | sed -n $sed] \n]
....

Maybe that helps someone :-)


devel / comp.lang.tcl / Strange behaviour of [dict exists]

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor