os.execute() always returning -1 on Linux in 3.0.1

I’ve come across this in the tool I develop, but it also handily exhibits in the “Scripting Terminal & Editor” window.

Type the following in to the terminal:

print (os.execute("pwd"))

and you’d expect to get:

0

which you do from 3.0.0 on 32-bit Linux (I’ve not got a 64-bit Linux installation)

but from 3.0.1 on Linux:

-1

Try:

print (os.execute("patently_nonexistent_madeupname"))

and 3.0.0 on Linux responds, as expected, with:

32512

whilst 3.0.1 on Linux sadly replies:

-1

None of which is helpful if you want to continue using os.execute’s return value in 3.0.1 on Linux

3.0.1 on 64-bit Windows is working as expected

Hello. Sorry for the very late reply.

Tried this here but can’t repliciate it - also not with a 32bit Renoise on a 64 bit OS on Linux.

Also wondering how this could happen, cause we haven’t changed anything related in Renoise 3.0.1. Further “os.execute” more or less is a straight call into the c libraries “system” function. “system” does return -1 on (internal) errors, so maybe there are something weird things happeing in your machines 32bit compatibiltiy libs?