Boriel Basic Forum
FYI FUNCTIONs and RETURN value - Printable Version

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



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

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 - 2021-02-28

(2021-02-27, 01: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 - 2021-02-28

(2021-02-28, 06:35 PM)boriel Wrote:
(2021-02-27, 01: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 - 2021-02-28

(2021-02-28, 06:56 PM)RandomiserUsr Wrote:
(2021-02-28, 06:35 PM)boriel Wrote:
(2021-02-27, 01: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 - 2021-03-15

(2021-02-28, 06: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.