Re: Assignment of associative arrays through braces

2018-08-21 Thread konsolebox
On Tue, Aug 21, 2018 at 2:20 AM Chet Ramey  wrote:
>
> On 8/19/18 10:27 AM, konsolebox wrote:
>
> >> This proposal simply requests an intuitively equivalent simple
> >> assignment syntax for associative arrays just like a='...' and
> >> a=(...), with same behavior for scoping.
> >>
> >> Maybe we can add another option like -G to have similar effect but
> >> that's a little different already.  Just allowing a={} would make it
> >> simpler for every scripter.
> >
> > By the way, is this rejected?
>
> No, it will not make it into bash-5.0 so I haven't looked at it further.
> It is on the list for a future release.

Ok, sounds good.

-- 
konsolebox



Re: Assignment of associative arrays through braces

2018-08-20 Thread Chet Ramey
On 8/19/18 10:27 AM, konsolebox wrote:

>> This proposal simply requests an intuitively equivalent simple
>> assignment syntax for associative arrays just like a='...' and
>> a=(...), with same behavior for scoping.
>>
>> Maybe we can add another option like -G to have similar effect but
>> that's a little different already.  Just allowing a={} would make it
>> simpler for every scripter.
> 
> By the way, is this rejected?

No, it will not make it into bash-5.0 so I haven't looked at it further.
It is on the list for a future release.


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Re: Assignment of associative arrays through braces

2018-07-31 Thread konsolebox
On Tue, Jul 31, 2018 at 10:31 PM, Chet Ramey  wrote:
> On 7/27/18 7:13 PM, konsolebox wrote:
>> Hi Chet,
>>
>> I wonder if you can allow bash to have another syntax to allow simpler
>> declaration and/or definition of associative arrays.  The changes
>> needed to have it done seem simple enough, and the only conflict it
>> makes is a scalar `var={...` assignment, which in my opinion is better
>> quoted to make it more readable and less questionable from other
>> syntaxes like brace expansion.  I believe most people intuitively
>> quotes it, and assignments that start with `{` is fairly rare.
>
> So it's syntactic sugar for `declare -gA a; a=( ... )'?

That surely is one of the main goals, but it's not exact.  `declare
-gA a; a=(...)` would always affect the main global scope.

Example:

$ g() { declare -gA a=([x]=y); }; f() { local -A a=(); g; declare -p
a; }; declare -A a=([a]=b); f; declare -p a
declare -A a=()
declare -A a=([x]="y" )

But as shown in my earlier example, a={...} would only affect the
nearest scope which was local a={}.

This proposal simply requests an intuitively equivalent simple
assignment syntax for associative arrays just like a='...' and
a=(...), with same behavior for scoping.

Maybe we can add another option like -G to have similar effect but
that's a little different already.  Just allowing a={} would make it
simpler for every scripter.

-- 
konsolebox



Re: Assignment of associative arrays through braces

2018-07-31 Thread Chet Ramey
On 7/27/18 7:13 PM, konsolebox wrote:
> Hi Chet,
> 
> I wonder if you can allow bash to have another syntax to allow simpler
> declaration and/or definition of associative arrays.  The changes
> needed to have it done seem simple enough, and the only conflict it
> makes is a scalar `var={...` assignment, which in my opinion is better
> quoted to make it more readable and less questionable from other
> syntaxes like brace expansion.  I believe most people intuitively
> quotes it, and assignments that start with `{` is fairly rare.

So it's syntactic sugar for `declare -gA a; a=( ... )'?

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/