Changes between Version 7 and Version 8 of ReleaseNotes/1.9


Ignore:
Timestamp:
Feb 6, 2013, 3:55:55 AM (6 years ago)
Author:
gb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReleaseNotes/1.9

    v7 v8  
    118118
    119119=== Detecting character encoding/decoding problems ===
    120 When decoding octets into characters from (e.g.) and input stream, CCL has traditionally generated a #\Replacement_Character if a sequence of octets doesn't represent a valid character in the stream's character-encoding.  Similarly, when trying to encode a character that can't be represented in a given encoding, a #\Replacement_character or a #\^Z (#\SUB) is generated instead.
     120When decoding octets into characters from (e.g.) and input stream, CCL has traditionally generated a #\Replacement_Character if a sequence of octets doesn't represent a valid character in the stream's character-encoding.  Similarly, when trying to encode a character that can't be represented in a given encoding, a #\Replacement_character or a {{{#\^Z}}} ({{{#\SUB}}}) is generated instead.  It'd also be reasonable (maybe a bit less so) to signal an error in the case where a problem like this occurs, since there's going to be some loss of information involved.  (Whether that loss or that information is significant or not is a decision that's above the pay grade of things like READ-CHAR.
     121
     122In CCL 1.9, a condition of type CCL:DECODING-PROBLEM (or CCL:ENCODING-PROBLEM) is signaled in cases where this sort of character replacement is about to occur, making it easier for interested higher-level code to detect these situations.  In addition, the macros (CCL:WITH-DECODING-PROBLEMS-AS-ERRORS &body body) and (CCL:WITH-ENCODING-PROBLEMS-AS-ERRORS &body body) execute a body of code and signal any DECODING-PROBLEMs (ENCODING-PROBLEMs) encountered during its execution via ERROR.
     123
     124=== Condition type signaled by NO-APPLICABLE-METHOD ===
     125The default method on NO-APPLICABLE-METHOD  now signals an error of type CCL:NO-APPLICABLE-METHOD-EXISTS; in previous versions, it signaled a SIMPLE-ERROR.
     126
     127=== New default values for {{{CCL:*DEFAULT-FILE-CHARACTER-ENCODING*}}} and {{{CCL:*TERMINAL-CHARACTER-ENCODING-NAME*}}} ===
     128These variables now default to :UTF-8; in previous versions of CCL, they defaulted to NIL/:ISO-8859-1.
     129
     130 
    121131
    122132