While looking for a reason why 29-07C.PS in PS3CET hinder consistent result, I found a problem in current setpagedevice. The difference was caused by i7 machine, on page 2 and 4, where it generated undefined errors where they should be a configrationerror. 'undefined' error was happening because .selectmedia procedure in gs_setpd.ps was building an error information dictionary ('<failed>' in its comment) with many keys those doesn't exist in <request> dictionary, such as /LeadinEdge or /InsertSheet. This draws the policy 0 procedure (line 544) to 'get' non-existant keys from <merged> dictionary. I have done above observations oh trunk rev. 10609. I have not confirmed why this didn't happen on i7a and macpro machines, but I guess on those machines, /PageSize happend to be the first key pulled out from <failed> dictionary so it didn't end up with 'undeinfed' Reproducing procedure: ---begin test.ps %! % Remove all but 'letter' page size << /InputAttributes currentpagedevice /InputAttributes get 1 1 2 index length 1 sub { 1 index exch undef } for >> setpagedevice << /Policies << /PolicyNotFound 0 >> /PageSize [ 500 700 ] >> setpagedevice ---end test.ps $ bin/gs -q -IResource/Init -sDEVICE=pbmraw -o /dev/null -dBATCH test.ps
Created attachment 5880 [details] b691065_a1.patch A patch. With this, the behavior of .selectmedia procedure become consistent with what described in comment just above.
I agree with the analysis of the problem and the proposed patch. I've committed the patch as a rev. 10676. Regression testing shows improvements in stdout log generated by 29-07C.PS CET test file.