Sujet : Re: [ksh93u+m] Interactive subshell expansion disfunctional
De : martijn (at) *nospam* inlv.demon.nl (Martijn Dekker)
Groupes : comp.unix.shellDate : 02. Jul 2024, 05:35:28
Autres entêtes
Message-ID : <lehas0FjnqoU2@mid.individual.net>
References : 1 2 3 4
User-Agent : Mozilla Thunderbird
Op 22-06-2024 om 13:15 schreef Janis Papanagnou:
On 22.06.2024 04:10, Janis Papanagnou wrote:
On 22.06.2024 01:14, Martijn Dekker wrote:
Op 21-05-2024 om 17:57 schreef Janis Papanagnou:
I recently replaced all original ksh93u+ by ksh93u+m, and meanwhile
noticed quite some deficiencies, things that worked in original ksh
but not any more in ksh93u+m.
>
I would of course be very interested in learning what deficiencies
(other than the below) you've been observing.
>
Unfortunately I haven't kept track. It's just that I noticed that
a couple things that worked before do not any more. Partly because
they were probably anyway only considered experimental, partly it
were features that I'd suspect are not commonly used.
>
Off the top of my head one was the support of ksh's alarm timers,
The undocumented 'alarm' built-in was removed in 93u+m/1.0 because it was broken and could easily crash the shell; Korn kept it in for years but never fixed it. My standards are higher than that. I prefer not to ship stuff that I know is broken.
It is still present on the dev branch which will eventually become 93u+m/1.1, though. If we manage to fix it properly, then it will reappear in that release, but I can't promise it.
and another thing was in context of discipline functions used on
shell variables. (In the latter case I have no certainty whether
it's a shell issue or whether I should have done this differently.
An example for the above mentioned effect shows up like that...
$ pushftp
pushftp: LINES.set: line 44: .kosta.rows=24: no parent
pushftp: COLUMNS.set: line 45: .kosta.cols=79: no parent
pushftp: line 11: 1: pushftp file ftp-path [ domain ]
[...]
I can't tell whether I have missed something with discipline functs
on built-in variables, how I used the namespaces, or something like
that. (My tries to fix that in my program logic all failed.) Though
the above "no parent" error messages did not show up with ksh93u+.
The fix for this is a prior 'typeset .kosta' (or even just '.kosta=') to create the parent variable.
To the best of my knowledge, this is exactly the same in 93u+ 2012-08-01:
$ /bin/ksh -c 'echo ${.sh.version}; .kosta.rows=24'
Version AJM 93u+ 2012-08-01
/bin/ksh: .kosta.rows=24: no parent
$ /bin/ksh -c 'typeset .kosta; .kosta.rows=24; echo ${.kosta.rows}'
24
-- || modernish -- harness the shell|| https://github.com/modernish/modernish|||| KornShell lives!||
https://github.com/ksh93/ksh