Changeset 13415


Ignore:
Timestamp:
07/26/11 18:50:04 (12 years ago)
Author:
Mark Evenson
Message:

Don't print the #\Uxxxx representation for character codes greater than 0xff.

We make #\Uxxxx a synonym of character code but not the cannonical
character name, using instead the unicode character at that point.

Location:
trunk/abcl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/doc/manual/abcl.tex

    r13372 r13415  
    2323\subsection{Requirements}
    2424
    25 java-1.5.xx, java-1.6.0_10+ recommended.
    26 
     25java-1.5.xx, java-1.6.0__10+ recommended.
     26
     27% Omit the build instructions?  This really doesn't belong in a User
     28% Manual, or if it does, then in an appendix.  --ME 20110725
    2729\subsection{Building from Source}
     30
     31
    2832
    2933There are three ways to build ABCL from the source release with the
     
    239243
    240244
    241 
    242245The Lisp \code{eval} primitive may be simply passed strings for evaluation,
    243246as follows
     
    250253Notice that all possible return values from an arbitrary Lisp
    251254computation are collapsed into a single return value.  Doing useful
    252 further computation on the `LispObject` depends on knowing what the
     255further computation on the ``LispObject'' depends on knowing what the
    253256result of the computation might be, usually involves some amount
    254257of \code{instanceof} introspection, and forms a whole topic to itself
    255258(c.f. [Introspecting a LispObject](#introspecting)). 
    256259
    257 Using `EVAL` involves the Lisp interpreter.  Lisp functions may be
     260Using ``EVAL'' involves the Lisp interpreter.  Lisp functions may be
    258261directly invoked by Java method calls as follows.  One simply locates
    259262the package containing the symbol, then obtains a reference to the
     
    269272    LispObject result = fooFunction.execute(parameter);
    270273    // How to get the "naked string value"?
    271     System.out.prinln("The result was " + result.writeToString());
     274    System.out.println("The result was " + result.writeToString());
    272275\end{code}
    273276
     
    402405 \end[java]{code}
    403406
     407\subsubsection{Extensions to the Reader}
     408
     409We implement a special hexadecimal escape sequence for specifying
     410characters to the Lisp reader, namely we allow a sequences of the form
     411#\Uxxxx to be processed by the reader as character whose code is
     412specified by the hexadecimal digits `xxxx'.  The hexadecimal sequence
     413must be exactly four digits long, padded by leading zeros for values
     414less than 0x1000.
     415
     416Note that this sequence is never output by the implementation.  Instead,
     417the corresponding Unicode character is output for characters whose
     418code is greater than 0x00ff.
    404419
    405420\section{Multithreading}
     
    409424
    410425\section{History}
     426
     427ABCL was originally the extension language for the J editor, which was
     428started in 1998 by Peter Graves.  Sometime in 2003, it seems that a
     429lot of code that had previously not been released publically was
     430suddenly committed that enabled ABCL to be plausibly termed an ANSI
     431Common Lisp implementation. 
     432
     433In 2006, the implementation was transferred to the current
     434maintainers, who have strived to improve its usability as a
     435contemporary Common Lisp implementation.
     436
    411437
    412438\end{document}
  • trunk/abcl/src/org/armedbear/lisp/LispCharacter.java

    r13402 r13415  
    627627      }
    628628
    629     if (c > 255) {
    630         final String result = "0000" + Integer.toString(c, 16);
    631         return "U" + result.substring(result.length() - 4, result.length());
    632     }
    633        
    634     if (c<0) return null;
     629    if (c<0 || c>255) return null;
    635630    return lispChars.get(c).name;
    636631  }
  • trunk/abcl/test/lisp/ansi/ansi-test-failures

    r13414 r13415  
    405405      FORMATTER.C.2A TRACE.8))
    406406
    407 
    408 
    409 
     407(doit 0.27.0-dev-13414M :id saturn
     408      (DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21 DEFGENERIC.30
     409       CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2 DEFMETHOD.ERROR.14
     410       DEFMETHOD.ERROR.15 INVOKE-DEBUGGER.1 MAKE-CONDITION.3 MAKE-CONDITION.4
     411       DELETE-PACKAGE.5 DELETE-PACKAGE.6 MAP.48 TYPE-OF.1 TYPE-OF.4
     412       ENSURE-DIRECTORIES-EXIST.8 PRINT.RANDOM-STATE.1
     413       PPRINT-LOGICAL-BLOCK.17))
     414
     415(compileit 0.27.0-dev-13414M :id saturn
     416      (ETYPECASE.15 MULTIPLE-VALUE-PROG1.10 DEFGENERIC.ERROR.20
     417       DEFGENERIC.ERROR.21 DEFGENERIC.30 CALL-NEXT-METHOD.ERROR.1
     418       CALL-NEXT-METHOD.ERROR.2 DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15
     419       INVOKE-DEBUGGER.1 MAKE-CONDITION.3 MAKE-CONDITION.4
     420       DELETE-PACKAGE.5 DELETE-PACKAGE.6 MAP.48 TYPE-OF.1 TYPE-OF.4
     421       ENSURE-DIRECTORIES-EXIST.8 PRINT.SYMBOL.RANDOM.2
     422       PRINT.SYMBOL.RANDOM.3 PRINT.SYMBOL.RANDOM.4
     423       PRINT.RANDOM-STATE.1 PPRINT-LOGICAL-BLOCK.17 TRACE.8))
     424
     425
     426
     427
     428
     429
     430
Note: See TracChangeset for help on using the changeset viewer.