A pervasive problem with any big Mason installation is that people will define named subroutines in Mason files, that's not a problem per-se, but is a big problem when two files define a subroutine under the same name.
Then when you render the first page you define that subroutine, the second page will clobber it, and when you render the first page again you'll get the subroutine from the first page. This results in all sorts of interesting heisenbugs. I wrote some code for use outside of Mason to detect these cases: https://gist.github.com/avar/8809976 It's already turning up a lot of interesting issues in our production code. I wonder if this would be useful for others as a native feature in Mason. I.e. something turned on via a flag for emitting warnings between page executions. I've had some issues that I haven't tracked down with copy_of_code_symbols interacting with constants created by "use constants". As some of you may know using that module doesn't actually create the equivalent of "sub CONST () { $value }", instead it creates a reference in the symbol table to a read-only scalar at compile-time, which perl then compiles into the optree. That's all well and good, but for some reason these sometimes upgrade to symbols that have {CODE} slots, I haven't tracked that down yet, maybe someone doing \&CONST somewhere is causing that. ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Mason-users mailing list Mason-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mason-users