Gentle people, When I attempt to run the attached life.apl.gz (after uncompressing) with
apl -f life.apl partial output occurs and then "SYSTEM LIMIT (fun_oper) appears with the offending apl statement after that. Investigation of the interpreter source code reveals the "SYSTEM LIMIT (fun_oper)" message is emitted because more than 16 operators are present in the apl statement as well there should be since the statement was generated by catenating together 120 strings containing 4 dyadic each operators (ยจ) per string. Admittedly this apl program is a contrived one-liner of Conway's "Game of Life", but I can foresee the 16 operators per APL statement being too restrictive for some "real" applications. Experimenting on my own, I raised the limit to 4096 with no negative consequences that I could see. What is the resource that is going to limit how many operators can appear in a given statement and is 16 a reasonable number for that limit? I hope the limit can be several orders of magnitude higher than 16. If anyone is interested in running the program, run it as shown above in a 43 by 132 ansi terminal with a huge scrollback buffer. After the program completes, scroll to where the output starts and then page down one screen at a time to see how "life" evolves. I've initialized the game with the R-pentomino which generates lots of activity and takes 1103 generations to become stable. Of course you will have to increase the MAX_FUN_OPER parameter in SystemLimits.def to run more than 3 or 4 generations. Regards, Fred Pitts Retired Chemical Engineer
life.apl.gz
Description: application/gzip