all devices regression report - 2018-01-12-03:50:00 - b5ac1a6e73af59d5106bf68ed3ab1a456a1c26dc
[email protected] Fri, 12 Jan 2018 03:50:00 -0800 (PST)
| Newsgroups | gmane.comp.printing.ghostscript.regression |
|---|---|
| Message-ID | <20180112115000.E6B4C204025E@i7> |
Differences in all devices errors using gs/examples files Previous Revision: 338c13198e658b084bbe45930e4837c31102b61f Current Revision: b5ac1a6e73af59d5106bf68ed3ab1a456a1c26dc commit b5ac1a6e73af59d5106bf68ed3ab1a456a1c26dc Author: Ken Sharp <[email protected]> AuthorDate: Fri Jan 12 10:56:29 2018 +0000 CommitDate: Fri Jan 12 10:56:29 2018 +0000 PS interpreter - don't use findresource for Idiom Recognition in bind The current implementation of idiom recognition uses findresource in the definition of the bind operator to check all existing IdiomSets for a candidate to substitute. This is, in fact, wrong. The PLRM (p135 3rd Edition) states that : "This matching by value occurs only for IdiomSet instances that are defined in VM; bind does not consider instances that are in not in VM but only in external storage." and: To ensure that the instances in VM are consistent with the external ones, the interpreter automatically invokes findresource to load external IdiomSet instances into VM at the beginning of each job and at certain other times." We were not loading the IdiomSet resources into VM, and we were searching external resources during bind. Not only is this incorrect, but because findresource ends up calling filenameforall on every directory in the search path, its also very slow. While normally we don't expect to see many occurences of bind during the course of a job, the customer supplied file did multiple binds on every page, and had > 50,000 pages. This led to a fourfold decrease in performance compared to Acrobat Distiller. Here we load the external resources into gobal VM at startup, and we now *only* search instances in VM. This is more correct going by the spec, and improves the performance by the desired factor of 4 for the customer. It provides a small benefit on cluster testing, which is expected as this only affects PostScript input. No differences expected. Resource/Init/gs_ll3.ps new errors: errors that went away: errors that are not whitelisted: === ghostpdl/examples/transparency_example.ps === cp50 === === ghostpdl/examples/transparency_example.ps === psdrgb ===