Csound Csound-dev Csound-tekno Search About

[Csnd-dev] Errors with arrays

Date2026-01-02 21:15
FromEduardo Moguillansky
Subject[Csnd-dev] Errors with arrays
Hi,

With latest develop branch, this code generates an error for me

kA[] fillarray 1, 2, 3
kB[] fillarray 2, 4, 6
kC[] = (kA * kB) * 0.5

error:

error: opcode '##mul' for expression with arg types :k[;c not found, line 17
SEMERR: opcode '##mul' for expression with arg types :k[;c not found, line 17

This works:

kA[] fillarray 1, 2, 3
kB[] fillarray 2, 4, 6
kC[] = (kA * kB)
kC *= 0.5

Any multi term expression throws the same error, actually:

for example, this fails too
kC[] = kA * 2 + 0.5



Date2026-01-02 22:24
FromVictor Lazzarini <000010b17ddd988e-dmarc-request@LISTSERV.HEANET.IE>
SubjectRe: [Csnd-dev] [EXTERNAL] [Csnd-dev] Errors with arrays
yes, that’s a regression introduced in the struct arrays PR. The issue is that the type
string is wrong, ":k[;c”  should be “k[]c”, so the opcode is not found. It seems to only
happen in expression analysis.

I did a bisect and found two possible commits where this regression was introduced. 

Can you file a ticket? We’ll probably have to ask Hlolli about it.
I’m doing what I can to track where this is hailing from, but the code in that area
has changed a lot from what I knew.

best
========================
Prof. Victor Lazzarini
Maynooth University
Ireland






> On 2 Jan 2026, at 21:15, Eduardo Moguillansky  wrote:
> 
> *Warning*
> This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.
> Hi,
> 
> With latest develop branch, this code generates an error for me
> 
> kA[] fillarray 1, 2, 3
> kB[] fillarray 2, 4, 6
> kC[] = (kA * kB) * 0.5
> 
> error: 
> 
> error: opcode '##mul' for expression with arg types :k[;c not found, line 17
> SEMERR: opcode '##mul' for expression with arg types :k[;c not found, line 17
> 
> This works:
> 
> kA[] fillarray 1, 2, 3
> kB[] fillarray 2, 4, 6
> kC[] = (kA * kB)
> kC *= 0.5
> 
> Any multi term expression throws the same error, actually:
> 
> for example, this fails too
> kC[] = kA * 2 + 0.5
> 
> 


Date2026-01-02 23:02
Fromvlz
SubjectRe: [Csnd-dev] [EXTERNAL] [Csnd-dev] Errors with arrays
Never mind, I found the issue and made a PR.
Thanks for spotting this.

> On 2 Jan 2026, at 22:24, Victor Lazzarini <000010b17ddd988e-dmarc-request@LISTSERV.HEANET.IE> wrote:
> 
> yes, that’s a regression introduced in the struct arrays PR. The issue is that the type
> string is wrong, ":k[;c”  should be “k[]c”, so the opcode is not found. It seems to only
> happen in expression analysis.
> 
> I did a bisect and found two possible commits where this regression was introduced. 
> 
> Can you file a ticket? We’ll probably have to ask Hlolli about it.
> I’m doing what I can to track where this is hailing from, but the code in that area
> has changed a lot from what I knew.
> 
> best
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
> 
> 
> 
> 
> 
>> On 2 Jan 2026, at 21:15, Eduardo Moguillansky  wrote:
>> 
>> *Warning*
>> This email originated from outside of Maynooth University's Mail System. Do not reply, click links or open attachments unless you recognise the sender and know the content is safe.
>> Hi,
>> 
>> With latest develop branch, this code generates an error for me
>> 
>> kA[] fillarray 1, 2, 3
>> kB[] fillarray 2, 4, 6
>> kC[] = (kA * kB) * 0.5
>> 
>> error: 
>> 
>> error: opcode '##mul' for expression with arg types :k[;c not found, line 17
>> SEMERR: opcode '##mul' for expression with arg types :k[;c not found, line 17
>> 
>> This works:
>> 
>> kA[] fillarray 1, 2, 3
>> kB[] fillarray 2, 4, 6
>> kC[] = (kA * kB)
>> kC *= 0.5
>> 
>> Any multi term expression throws the same error, actually:
>> 
>> for example, this fails too
>> kC[] = kA * 2 + 0.5
>> 
>> 
>