×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Well, first of all, it's more correct to say that RPG III programs
can't call themselves recursively.

An RPG IV program, if using ACTCGRP(*NEW), can call itself
recursively...but note that there's a big performance hit to using
ACTGRP(*NEW). I seem to recall hearing that the cycle-less RPGLE
programs available in 6.1 and higher support recursion also, but I
can't seem to find a quick reference that confirms that...

OPM and ILE C programs can call themselves recursively. As can OPM
and ILE CL programs.

You co-worker is correct regarding RPGLE sub procedures, they have
always supported recursion and each invocation gets a copy of it's
local variables.

You are correct in that adding the STATIC keyword, means that the
variable is shared between invocations...Bob Cozzi has a nice
article...
http://systeminetwork.com/article/recursion-recursion

HTH,
Charles


On Mon, Jan 31, 2011 at 9:55 AM, David FOXWELL <David.FOXWELL@xxxxxxxxx> wrote:
Hi all

Today, by accident I set up a job where program tried to call itself. We have one program that is duplicated in several libraries and LIBA/PGM  should have called LIBB/PGM. This was the first time I'd actually seen the error produce in this way. A coworker informed me that recursive calls were possible with subprocedures thanks to the fact that at each call, a separate storage area is allocated for each subprocedure. This is not the case for program calls. That means that if mySP calls mySP and there is a local variable V1,  there will be two adresses for V1, each containing a different value.
I don't doubt my coworker, it's just that my reference is midrange.com.

Is my information accurate? What happens to static variables in such subprocedure calls?
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.