[PennMUSH] Function Invocation limits

Suzanne Baylor artifact at dsl-only.net
Sun Jan 28 16:50:13 PST 2007


The hardcode issue: Setting function_invocation_limit  to anything 8192 
or to 0, the server seems to assume 0 or 1 and all code gives errors.
This was 1.8.2 p2 and an clean install of 1.8.3. Looking at the help 0 
should be 'unlimited'.

For the softcode:
I'm getting close to the upper wall in function invocation .. it'll 
error at 8000 but not at 8192.  The function will only run a few times 
daily (if that) on a newer machine with a gig of ram so I'm not 
concerned about resources. I'm more concerned it'll get to 8193 and I'll 
be stuck. So.... any suggestions on how to do this another way if I end 
up hitting the wall?

F.CHECK.PREREQ #= 
[iter(get([v(ogl_db)]/d.feat.prereq),[iter([get([v(ogl_db)]/
 d.feat.prereq.##)],[setq(F, 
%qF%b[u([v(ogl_misc)]/f.check.type.[extract([get([v(
 ogl_db)]/d.prereq.[first(%i0, :)])], 4, 1, 
|)],[get([v(ogl_db)]/d.prereq.[first(
 %i0, :)])])])])][if(gte(member(%qF, 0), 1),,[setq(P,%qP%b##)])][setq(F,
 )])][set(get(%#/d.sheet),list.feats:[squish(unique(sort(%qP)))])

I like the nested iters as they are automated and far more readable than 
doing it with a ton of if/else statements or switches. d.feat.prereq has 
the potential to be large in the future. d.feat.prereq.## should have a 
max of 5 or 6 sub items.


More information about the PennMUSH mailing list