Skip to main content
Skip table of contents

(v13) Example output from the clrip -! 3 option

This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP

This section contains example output from the clrip when given a test file that causes errors.

clrip -! 3 Example 1

                        [0:M:38000802] Initial RIP virtual memory: 5 MiB (5084 KiB) used, 16
                      (16674816 KiB) commit limit, 32 GiB (33359872 KiB) reserved

This has a Timeline reference of zero (0 )(because it is the initial RIP report and does not relate to any particular job). It's on the Monitor Channel (M ) which is primarily for the benefit of the Compatibility Handlers and for those who want to create their own Channels. The Type is 0x38000802 : MON_TYPE_PSINITIALRIPVM defined in interface\monitor\monps.h.

This Type indicates that it's informational. That is, it's not an Error, Warning or Debug (type & MON_MASK_CLASS == MON_CLASS_INFO : begins 2 or 3 ); it's a Control message. That is, it's about the operation of the RIP rather than some feature of a particular job (type & MON_MASK_SUBCLASS == MON_INFO_CONTROL : begins 38 ); that it's from the PostScript language interpreter (type & MON_BASE_LIMIT==MON_BASE_PS : the 08 , (though you would rarely need to examine that); as well as specifically being the initial RIP VM status (type ==MON_TYPE_PSINITIALRIPVM ).

clrip -! 3 Example 2

>          [0:E:48000000] **** PostScript asserts enabled ****

This error is emitted through %stderr for some reason (E ), and is a Warning (MON_CLASS_WARNING : starts 4 or 5 ) specifically of subclass MON_WARNING (starts 48 ), but it is not unique (the rest is zero). This is the UID attached to anything output through %stderr .

clrip -! 3 Example 3

                        [Timeline 197: JOB]
                        [197:P:38000100] Starting Job On Tue Nov 25 12:13:48 2014

This is the first message with a valid Timeline reference, which is for the job, though there is no title yet. 38000100 is MON_TYPE_JOBSTART defined in monjob.h. It is MON_INFO_CONTROL as above (38 ) so appears as white on blue.

clrip -! 3 Example 4

                        [Timeline 198: "Interpreting page 1"]
                        [198:M:20000000] About to cause error
                        [198:M:20000000] this_is_undefined
                        [198:M:20000000] About to handle error

These three are lines of text output by the PostScript language job, this is because type & MON_MASK_SUBCLASS == MON_INFO_JOB (starts 20 ).

Because it is coming from interpretation it carries the INTERPRETPAGE timeline reference, which has a title of "Interpreting page <n>" .

20000000 is the default UID for anything output through %stdout , though jobs (unlikely) or procsets (more likely) can use the metaexec operator to set their own UID. For example:

                      (This has a unique UID!) {=} 16#20001234 statusdict/metaexec get exec
                        [<tlref>:M:20001234] This has a unique UID!

clrip -! 3 Example 5

>          [198:M:68140000] %%[ Error: undefined; OffendingCommand: this_is_undefined; File: %console% ]%%

There has been an error! You can tell without looking for "%%[ Error:" because type & MON_MASK_CLASS == MON_CLASS_ERROR (starts 6 or 7 ); it is a normal error not a fatal one (type & MON_MASK_SUBCLASS == MON_ERROR : starts 68 ); it is an UNDEFINED error (MON_PSERROR(type) == UNDEFINED : the 14 ); but it is not a unique one (the rest is zero).

NOTE: Errors that come from PostScript language syntax are never unique there is no point discerning between TYPECHECK from “add” and TYPECHECK from “sub”, though we do want to recognize TYPECHECK due to a broken font.

MON_CLASS_ERROR is definitive in that it informs us this text comes from (or appears to come from) the PostScript language error handler. It tells us that we can use MON_PSERROR(type) to find what kind of error it was. If it's not MON_CLASS_ERROR , it does not have an error number in it and it does not indicate that the PostScript language error handler was called.

clrip -! 3 Example 6

                        [198:M:20000000] Back after error
                        [198:M:20000000] And now the same outside a stopped

These are normal lines of text emitted by the job it is still running because it generated the above error in a “stopped” and then called “handleerror” itself yet everything was correctly labeled.

clrip -! 3 Example 7

>          [198:M:68140000] %%[ Error: undefined; OffendingCommand: this_is_also_undefined; File: %console% ]%%

The job has errored again, and it is another generic UNDEFINED . However, this one didn't happen inside a “stopped”. This can be determined because:

>          [198:M:58000800] %%[ Flushing: rest of job (to end of file) will be ignored ]%%

The job is being flushed. You can tell without parsing the text because type == MON_TYPE_FLUSHINGJOB (monps.h). This is a Warning (type & MON_MASK_CLASS == MON_CLASS_WARNING : starts 4 or 5 ); it's a Failure Warning (type & MON_MASK_SUBCLASS == MON_WARNING_FAILURE : starts 58 ); it's from the interpreter (type & MON_BASE_LIMIT == MON_BASE_PS : the 08 ) though that's not very important.

clrip -! 3 Example 8

>          RIP refused data for job

Note that this line has no metadata because the skin emitted it directly without issuing a Monitor Event.

clrip -! 3 Example 9

                        [Timeline 197: ""]
                        [197:P:38000114] Total time: 0.168 seconds (00:00:00.168)

This is a timing message for the job, so it's back to the job timeline. Note that the JOB timeline now has a valid title. 3 means MON_CLASS_INFO ; 38 means MON_INFO_CONTROL ; and 38000114 is MON_TYPE_TOTALTIME (monjob.h). The timing messages are detected by:

                      if (type >= MON_TYPE_TOTALTIME && type <= MON_TYPE_FINALTIME) {
                      /* It's a timing message */

clrip -! 3 Example 10

>          [197:P:38000113] Job Not Completed:

This is MON_TYPE_JOBEND regardless of whether the job completed or not.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.