1. One or more processor-accessible storage media comprising processor-executable instructions that, when executed, direct a device to perform actions comprising:
determining if an instruction of a line of common intermediate language code meets a predetermined exception-related criterion; and
if so, injecting a decision point in association with the instruction of the line of common intermediate language code, wherein:
the decision point enables a decision as to whether an exception is to be thrown with respect to the instruction;
the action of injecting a decision point comprises an action of injecting a bookmark entry, wherein the action of injecting a decision point further comprises an action of:
injecting a call to a decision runtime library, the decision runtime library comprising a program that is adapted to evaluate whether the exception is to be thrown with respect to the instruction by utilizing at least one throw exception decision (TED) logic factor, wherein the TED logic factor comprises one of the following:
random; and
first path, wherein the first path TED logic factor throws an exception when encountering a particular decision point along a new execution path using an identifier of the particular decision point and one or more stack values;
the bookmark entry including an instruction type indicator that indicates an instruction type for the instruction of the line of common intermediate language code.
2. The one or more processor-accessible storage media as recited in claim 1 comprising the processor-executable instructions that, when executed, direct the device to perform further actions comprising:
retrieving the line of common intermediate language code from a common intermediate language code program prior to the determining;
retrieving another line of common intermediate language code from the common intermediate language code program; and
repeating the action of determining and the action of injecting a decision point for an instruction of the retrieved other line of common intermediate language code.
3. The one or more processor-accessible storage media as recited in claim 1, wherein the action of determining comprises an action of:
determining if the instruction of the line of common intermediate language code is capable of throwing an exception.
4. The one or more processor-accessible storage media as recited in claim 1, wherein the action of determining comprises an action of:
determining if the instruction of the line of common intermediate language code is capable of throwing an exception and is related to a pre-selected exception area.
5. The one or more processor-accessible storage media as recited in claim 1, wherein the action of determining comprises an action of:
determining if the instruction of the line of common intermediate language code is capable of throwing an exception with reference to a common intermediate language code specification.
6. The one or more processor-accessible storage media as recited in claim 1, wherein the bookmark entry
further includes an identifier that uniquely identifies the decision point within the common intermediate language code that is being instrumented.
7. The one or more processor-accessible storage media as recited in claim 1, wherein at least a portion of the processor-executable instructions comprise at least part of an instrumentation tool that produces instrumented common intermediate language code from the common intermediate language code by repeating the actions of determining and injecting a decision point for a plurality of respective instructions of a plurality of respective lines of the common intermediate language code.
8. A device comprising:
a processor;
a memory device, the memory device encoded with:
instrumented common intermediate language code that includes a test couplet corresponding to a decision point and an associated instruction, the associated instruction capable of causing a fault;
a decision runtime library that is adapted to evaluate the test couplet to selectively decide whether to throw an exception responsive to a bookmark entry and based on at least one throw exception decision (TED) logic factor selected from the group comprising:
throwing an exception randomly; and
throwing an exception when encountering a particular decision point along each new execution path using an identifier of the particular decision point and one or more stack values; and
a common language runtime component that interprets the decision point so as to call the decision runtime library prior to executing the associated instruction;
wherein the decision point comprises the bookmark entry and a call to the decision runtime library, and wherein the bookmark entry comprises an indication of an instruction type of the associated instruction and an identifier of the decision point.
9. The device as recited in claim 8, wherein the instrumented common intermediate language code is in a binary form.
10. The device as recited in claim 8, wherein the decision runtime library is further adapted to evaluate the test couplet to selectively decide whether to throw an exception responsive to the bookmark entry and based on throw exception decision logic.
11. The device as recited in claim 8, wherein the decision runtime library is further adapted to evaluate the test couplet to selectively decide whether to throw an exception responsive to the indication of the instruction type of the associated instruction.
12. The device as recited in claim 8, wherein the decision runtime library is (i) modularized by exception category andor (ii) operative in dependence on an instruction type of the associated instruction as determinable by the indication of the instruction type from the bookmark entry.
13. An arrangement for enabling reliability testing of managed code, the arrangement including one or more processor-accessible storage media device; wherein the arrangement comprises:
instrumentation means for instrumenting common intermediate language code with a plurality of decision points to produce instrumented common intermediate language code;
wherein the instrumentation means comprises:
analysis means for analyzing whether individual instructions of a plurality of instructions of the common intermediate language code can result in a failure; and
injection means for injecting a respective decision point in association with each respective individual instruction, which can result in a failure as analyzed by the analysis means, of the plurality of instructions of the common intermediate language code;
wherein the injection means comprises:
means for injecting a call to a decision runtime library, the decision runtime library comprising a program that is adapted to evaluate whether an exception is to be thrown with respect to the instruction by utilizing at least one throw exception decision (TED) logic factor, wherein the TED logic factor comprises one of the following:
random; and
first path, wherein the first path TED logic factor throws an exception when encountering a particular decision point along a new execution path using an identifier of the particular decision point and one or more stack values;
means for injecting a respective bookmark entry that indicates an instruction type of the respective individual instruction associated with the respective decision point; and
decision means for deciding whether to throw an exception at each decision point of the plurality of decision points.
14. The arrangement as recited in claim 13, wherein the respective bookmark entry further identifies the respective decision point.
15. The arrangement as recited in claim 13, wherein the injection means further comprises:
means for injecting a call at least one module that is capable of evaluating the respective decision point with regard to whether a failure is to be induced.
16. The arrangement as recited in claim 13, further comprising:
common language runtime means for executing the instrumented common intermediate language code and the decision means in a runtime environment.
17. The arrangement as recited in claim 16, wherein the decision means operates while the instrumented common intermediate language code is being executed when the common language runtime means calls the decision means at each decision point of the plurality of decision points.
18. The arrangement as recited in claim 13, wherein the decision means comprises:
evaluation means for evaluating whether to throw an exception responsive to the respective bookmark entry of each respective decision point of the plurality of decision points and based on at least one throw exception decision logic factor.
19. The arrangement as recited in claim 13, wherein the arrangement comprises at least one device having the one or more processor-accessible storage media.
20. A method for instrumentation injection with regard to a common language runtime environment, the environment comprising a processor, the method comprising:
determining whether an instruction from common intermediate language code is capable of causing an exception; and
if so, injecting a decision point in association with the instruction to mark the instruction for evaluation during a common language runtime execution, the evaluation involving a decision as to whether a failure is to be induced with respect to the instruction; wherein the injecting a decision point comprises of injecting a bookmark entry, wherein the action of injecting a decision point further comprises an action of:
injecting a call to a decision runtime library, the decision runtime library comprising a program that is adapted to evaluate whether an exception is to be thrown with respect to the instruction by utilizing at least one throw exception decision (TED) logic factor, wherein the TED logic factor comprises one of the following:
random; and
first path, wherein the first path TED logic factor throws an exception when encountering a particular decision point along a new execution path using an identifier of the particular decision point and one or more stack values;
the bookmark entry including an instruction type indicator that indicates an instruction type for the instruction of the line of common intermediate language code.
21. The method as recited in claim 20, wherein the determining comprises:
determining whether the instruction from the common intermediate language code is capable of causing an exception and is (i) related to a pre-selected exception category andor (ii) of a pre-selected instruction type.
22. The method as recited in claim 20, wherein the injecting a decision point further comprises:
injecting an identifier of the decision point.
23. One or more processor-accessible storage media comprising processor-executable instructions that, when executed, direct a device to perform the method as recited in claim 20.
24. The method as recited in claim 20, further comprising:
repeating the determining and the injecting a decision point for a plurality of instructions from the common intermediate language code; and
producing instrumented common intermediate language code as a result of the repeating.
25. The method as recited in claim 20, further comprising:
selectively deciding whether the execution is to fail at the decision point.
26. The method as recited in claim 25, further comprising:
if it is decided at the selectively deciding that the execution is to fail at the decision point, then choosing which exception of at least two exceptions is to be thrown.
27. The method as recited in claim 25, further comprising:
if it is decided at the selectively deciding that the execution is to fail at the decision point then inducing a failure in the execution of the common language runtime with respect to the instruction.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A color image processing apparatus, comprising:
color look-up table (CLUT) synthesis ONOFF determining means for determining whether or not a single synthesized CLUT is generated by synthesizing a plurality of CLUTs with respect to a plurality of CLUT groups which are sequentially referred at a time of carrying out color conversion on a drawing object, for each drawing object which is a component of text data, on the basis of attribute information of the drawing object;
CLUT synthesis ONOFF storing means for storing determined results determined by the synthesis ONOFF determining means;
CLUT synthesizing means for generating the single synthesized CLUT by carrying out CLUT synthesis at the time when the determination by the synthesis ONOFF determining means is varied from OFF to ON;
synthesized CLUT storing means for storing the synthesized CLUT which is a result that arbitrary CLUTs among said plurality of CLUT groups are synthesized by the CLUT synthesizing means; and
color conversion means for carrying out color conversion with respect to an arbitrary drawing object on the basis of the attribute information of the drawing object and the stored contents of the CLUT synthesis ONOFF storing means, with reference to CLUTs to be applied to the drawing object from one of the synthesized CLUT and a predetermined CLUT among said plurality of CLUT groups.
2. A color image processing apparatus according to claim 1, wherein the CLUT synthesis ONOFF determining means determines a CLUT combination which a target drawing object uses to be CLUT synthesis ON when the attribute information of the drawing object is bitmap data.
3. A color image processing apparatus according to claim 2, wherein the CLUT synthesis ONOFF determining means maintains the stored contents held in the CLUT synthesis ONOFF storing means with respect to the CLUT combination which the target drawing object uses when it is designated that the target drawing object uses a plurality of unsynthesized CLUTs.
4. A color image processing apparatus according to claim 1, wherein, when the stored contents of the CLUT synthesis ONOFF storing means are in a state of synthesis OFF with respect to the CLUT combination, the CLUT synthesis ONOFF determining means newly determines synthesis ONOFF on the basis of the attribute information of the target drawing object and updates the stored contents of the CLUT synthesis ONOFF storing means on the basis of the determined result, and when the stored contents of the CLUT synthesis ONOFF storing means are in a state of synthesis ON, the CLUT synthesis ONOFF determining means maintains the state of synthesis ON regardless of the attribute information of the target drawing object.
5. A color image processing apparatus according to claim 4, wherein the CLUT synthesis ONOFF determining means maintains the stored contents held in the CLUT synthesis ONOFF storing means with respect to the CLUT combination which the target drawing object uses when it is designated that the target drawing object uses a plurality of unsynthesized CLUTs.
6. A color image processing apparatus according to claim 1, further comprising:
cache means for holding results of color conversions by the color conversion means.
7. A color image processing apparatus according to claim 6, further comprising:
CLUT synthetic cache control means for using the synthesized CLUT held by the cache means in place of carrying out the CLUT synthesis itself when a CLUT combination corresponding to the synthesized CLUT which has been stored in the cache means and used in a text processing job appears in a new text processing job.
8. A color image processing apparatus according to claim 1, further comprising:
subblock scan control means for dividing an entire area of a drawing object into an arbitrary number of subblocks, and supplying image data to the color conversion means in order of raster-scanning in the respective subblocks.
9. A color image processing apparatus comprising:
CLUT combination-drawing object association generating means for associating CLUT combinations and drawing objects which appear in processing on the basis of processing contents of text data;
CLUT synthesis ONOFF determining means for determining ONOFF of CLUT synthesis for each CLUT combination on the basis of attribute information of respective objects of associated drawing object groups;
CLUT synthesizing means for synthesizing CLUTs with respect to each CLUT combination in which a determined result by the CLUT synthesis ONOFF determining means is ON; and
color conversion means for carrying out color conversion with respect to each of individual drawing objects on the basis of attribute information of each drawing object and the determined result of the CLUT synthesis ONOFF with which each drawing object is associated, with reference to one of the synthesized CLUT and a plurality of unsynthesized CLUT groups.
10. A color image processing apparatus according to claim 9, wherein the CLUT synthesis ONOFF determining means determines CLUT synthesis to be ON when an arbitrary object among the associated drawing object groups includes a bitmap object.
11. A color image processing apparatus according to claim 9, wherein the CLUT synthesis ONOFF determining means compares amounts of operations for color conversions in a case of CLUT synthesis ON and in a case of CLUT synthesis OFF on the basis of the total number of pixels P of bitmap object groups among the associated drawing object groups, the total number of colors C of non-bitmap object groups among the associated drawing object groups, the number of nodes N of an initial CLUT among CLUT groups configuring CLUT combinations, and the number of CLUTs S configuring a target CLUT combination, and determines one of the CLUT synthesis ON and the CLUT synthesis OFF such that the number of times of color conversion are reduced.
12. A color image processing apparatus according to claim 11, wherein the CLUT synthesis ONOFF determining means determines CLUT synthesis to be ON when
a(P+C)S>bN(S\u22121)+(P+C),
provided that a and b are respectively coefficients greater than or equal to 1.
13. A color image processing apparatus according to claim 9, wherein the CLUT synthesis ONOFF determining means compares amounts of operations for color conversions which are calculated on the basis of the number of times of color conversion, a weighting factor (including 1) per color conversion when CLUT synthesis is carried out, and a weighting factor (including 1) per color conversion when CLUT synthesis is not carried out, in a case of CLUT synthesis ON and in a case of CLUT synthesis OFF, on the basis of the total number of pixels P of bitmap object groups among the associated drawing object groups, the total number of colors C of non-bitmap object groups among the associated drawing object groups, the number of nodes N of an initial CLUT among the CLUT groups configuring a current target CLUT combination, and the number of CLUTs S configuring the current target CLUT combination, and determines one of the CLUT synthesis ON and the CLUT synthesis OFF such that the number of times of color conversion are reduced.
14. A color image processing apparatus according to claim 13, wherein the CLUT synthesis ONOFF determining means determines CLUT synthesis to be ON when
a(P+C)S>bN(S\u22121)+(P+C),
provided that a and b are respectively coefficients greater than or equal to 1.
15. A color image processing apparatus according to claim 9, further comprising:
CLUT synthesis ONOFF forcibly determining means for, when there exists a drawing object for which it is designated that the synthesized CLUT is used among the associated drawing object groups, determining the CLUT synthesis to be ON regardless of the determined result by the CLUT synthesis ONOFF determining means.
16. A color image processing apparatus according to claim 15, further comprising:
display means for reporting that the CLUT synthesis is determined to be ON regardless of the determined result by the CLUT synthesis ONOFF determining means, by the CLUT synthesis ONOFF forcibly determining means.
17. A color image processing apparatus according to claim 9, wherein, when there exists a drawing object for which it is designated that a plurality of unsynthesized CLUTs are used among the associated drawing object groups, the CLUT synthesis ONOFF determining means determines synthesis ONOFF of the CLUT synthesis on the basis of attribute information of only drawing objects except for the drawing objects for which it is designated that a plurality of unsynthesized CLUTs are used.
18. A color image processing apparatus according to claim 17, further comprising:
display means for reporting that the CLUT synthesis is determined to be ON regardless of the determined result of the CLUT synthesis ONOFF determining means, by the CLUT synthesis ONOFF forcibly determining means.
19. A color image processing apparatus according to claim 9, further comprising:
cache means for holding results of color conversions by the color conversion means.
20. A color image processing apparatus according to claim 19, further comprising:
CLUT synthetic cache control means for using the synthesized CLUT held by the cache means in place of carrying out the CLUT synthesis itself when a CLUT combination corresponding to the synthesized CLUT which has been stored in the cache means and used in a text processing job appears in a new text processing job.
21. A color image processing apparatus according to claim 9, further comprising:
subblock scan control means for dividing an entire area of a drawing object into an arbitrary number of subblocks, and supplying image data to the color conversion means in order of raster-scanning in the respective subblocks.