Forum
FYI FUNCTIONs and RETURN value - Printable Version

+- Forum (https://www.boriel.com/forum)
+-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12)
+--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11)
+---- Forum: Help & Support (https://www.boriel.com/forum/forumdisplay.php?fid=16)
+---- Thread: FYI FUNCTIONs and RETURN value (/showthread.php?tid=1028)



FYI FUNCTIONs and RETURN value - RandomiserUsr - 02-27-2021

I have seen a problem where if you call a function without a RETURN 0 with no return value in FUNCTION declaration e.g.

FUNCTION UFNprintText(printText$ AS STRING )

Sometimes the function will just crash the ZX Spectrum emulator

Adding a RETURN 0 makes it work.

Just thought you might know this?


RE: FYI FUNCTIONs and RETURN value - boriel - 02-28-2021

(02-27-2021, 12:07 PM)RandomiserUsr Wrote: I have seen a problem where if you call a function without a RETURN 0 with no return value in FUNCTION declaration e.g.

FUNCTION UFNprintText(printText$ AS STRING )

Sometimes the function will just crash the ZX Spectrum emulator

Adding a RETURN 0 makes it work.

Just thought you might know this?

1) What version are you using?

2) For functions like the above that return numbers, not putting a return will return a random (undefined value) but should never crash the program. If it does, please post a code snippet here to track it. Cool


RE: FYI FUNCTIONs and RETURN value - RandomiserUsr - 02-28-2021

(02-28-2021, 05:35 PM)boriel Wrote:
(02-27-2021, 12:07 PM)RandomiserUsr Wrote: I have seen a problem where if you call a function without a RETURN 0 with no return value in FUNCTION declaration e.g.

FUNCTION UFNprintText(printText$ AS STRING )

Sometimes the function will just crash the ZX Spectrum emulator

Adding a RETURN 0 makes it work.

Just thought you might know this?

1) What version are you using?

2) For functions like the above that return numbers, not putting a return will return a random (undefined value) but should never crash the program. If it does, please post a code snippet here to track it. Cool


1) zxbc.py 1.14.1

2) Well I tried to write a small .BAS program to reproduce it but it does not break !
The Function does not return any value 
The output of the compiler generates this error so it seems it needs a value regardless?
Code:
aTest5.bas:16: warning: [W190] Function 'buildVocab' should return a value

This is not a big thing for me as now I simply had a RETURN 0 for functions that don't return a value.

One thing I wonder if returning String Arrays is on the cards sometime soon?
Thank you
Regards
Ken


RE: FYI FUNCTIONs and RETURN value - boriel - 02-28-2021

(02-28-2021, 05:56 PM)RandomiserUsr Wrote:
(02-28-2021, 05:35 PM)boriel Wrote:
(02-27-2021, 12:07 PM)RandomiserUsr Wrote: I have seen a problem where if you call a function without a RETURN 0 with no return value in FUNCTION declaration e.g.

FUNCTION UFNprintText(printText$ AS STRING )

Sometimes the function will just crash the ZX Spectrum emulator

Adding a RETURN 0 makes it work.

Just thought you might know this?

1) What version are you using?

2) For functions like the above that return numbers, not putting a return will return a random (undefined value) but should never crash the program. If it does, please post a code snippet here to track it. Cool


1) zxbc.py 1.14.1

2) Well I tried to write a small .BAS program to reproduce it but it does not break !
The Function does not return any value 
The output of the compiler generates this error so it seems it needs a value regardless?
Code:
aTest5.bas:16: warning: [W190] Function 'buildVocab' should return a value

This is not a big thing for me as now I simply had a RETURN 0 for functions that don't return a value.

One thing I wonder if returning String Arrays is on the cards sometime soon?
Thank you
Regards
Ken

This is a warning, not an error. For the moment it's just that. In the future, compiling with --strict will issue an error and the program won't compile unless you supply a return value.


RE: FYI FUNCTIONs and RETURN value - boriel - 03-15-2021

(02-28-2021, 05:56 PM)RandomiserUsr Wrote: One thing I wonder if returning String Arrays is on the cards sometime soon?
Thank you
Regards
Ken

You can use ByRef Array() in functions and subs and return a result there. Returning arrays is on the ToDo list as this require to enable Dyamic Arrays.