$ ./parrot-prove -v t/op/string_cs.t t/op/string_cs.t .. Malformed UTF-8 string current instr.: 'parrot;TAP;Parser;file' pc 2101 (runtime/parrot/library/TAP/Parser.pir:914) called from Sub 'parrot;TAP;Harness;aggregate_tests' pc 330 (runtime/parrot/library/TAP/Harness.pir:132) called from Sub 'parrot;TAP;Harness;runtests' pc 235 (runtime/parrot/library/TAP/Harness.pir:107) called from Sub 'do' pc 225 (runtime/parrot/bin/prove.pir:147)
…MCs work correctly
… it defaults to a lazier mode where it just reads and returns whatever is available, sizing the buffer accordingly. mortiz++ for the request.
… empty if (1) there are zero bytes in the buffer, (2) there are fewer bytes in the buffer than are in the delimiter string or (3) there are fewer bytes in the buffer than the maximum number of bytes per codepoint for the given encoding. In any of these three cases (#3 was missing), we need to make sure we fill the buffer to avoid missing characters spread across buffers. rurban++ for pointing out the issue, which has recently been exposed)
…ts of the buffer. Only fill the buffer if it's empty or contains less than a single codepoint.
… trying to recv too often.
In a branch of mod_parrot designed to ease the writing of exception handlers, I noted that the API cannot catch exceptions twice. On throwing an exception and the interpreter 'dies', it returns to the api call via longjmp(), and sets some values upon the interpreter object. Based upon these values, the api call returns 0, upon which the exception is retrieved and inspected. Best example: show_last_error_and_exit. We should just check for the last_exception being PMCNULL; if so you can jump out (we are already dying) and if not set already_dying.
…may be attempting to reencode a record_separator which hasn't been initialized yet. This fixes an issue exposed by Rosella