Changeset 13416


Ignore:
Timestamp:
07/26/11 19:55:04 (10 years ago)
Author:
Mark Evenson
Message:

Backport r13415: make #\Uxxxx a synonym for a character not the cannoical name.

Location:
branches/0.26.x/abcl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/0.26.x/abcl/doc/manual/abcl.tex

    r13372 r13416  
    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}
  • branches/0.26.x/abcl/src/org/armedbear/lisp/LispCharacter.java

    r13403 r13416  
    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  }
  • branches/0.26.x/abcl/test/lisp/ansi/ansi-test-failures

    r12556 r13416  
    359359     FORMAT.LOGICAL-BLOCK.CIRCLE.3 WITH-STANDARD-IO-SYNTAX.23 TRACE.8))
    360360
     361(doit 0.25.0 :id saturn
     362      :uname "i386-pc-solaris2.11.oi_148"  :jvm "jdk-1.6.0_25"
     363     (DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21 DEFGENERIC.30
     364      CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2
     365      DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 INVOKE-DEBUGGER.1
     366      MAKE-CONDITION.3 MAKE-CONDITION.4 DELETE-PACKAGE.5
     367      DELETE-PACKAGE.6 MAP.48 TYPE-OF.1 TYPE-OF.4 MAKE-PATHNAME.9
     368      ENSURE-DIRECTORIES-EXIST.8 PRINT.SYMBOL.RANDOM.2
     369      PRINT.RANDOM-STATE.1 PPRINT-FILL.14 PPRINT-FILL.15
     370      PPRINT-LINEAR.14 PPRINT-TABULAR.13 PPRINT-LOGICAL-BLOCK.17
     371      PPRINT-POP.7 PPRINT-POP.8 FORMAT.LOGICAL-BLOCK.CIRCLE.1
     372      FORMAT.LOGICAL-BLOCK.CIRCLE.2 FORMAT.LOGICAL-BLOCK.CIRCLE.3
     373      COMPILE-FILE.16))
     374
     375(compileit 0.25.0 :id saturn
     376      :uname "i386-pc-solaris2.11.oi_148"  :jvm "jdk-1.6.0_25"
     377     (MULTIPLE-VALUE-PROG1.10 DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21
     378      DEFGENERIC.30 CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2
     379      DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 INVOKE-DEBUGGER.1
     380      MAKE-CONDITION.3 MAKE-CONDITION.4 DELETE-PACKAGE.5
     381      DELETE-PACKAGE.6 MAP.48 TYPE-OF.1 TYPE-OF.4 MAKE-PATHNAME.9
     382      ENSURE-DIRECTORIES-EXIST.8 PRINT.SYMBOL.RANDOM.2
     383      PRINT.SYMBOL.RANDOM.4 PRINT.STRING.RANDOM.1 PRINT.RANDOM-STATE.1
     384      PPRINT-FILL.14 PPRINT-FILL.15 PPRINT-LINEAR.14 PPRINT-TABULAR.13
     385      PPRINT-LOGICAL-BLOCK.17 PPRINT-POP.7 PPRINT-POP.8
     386      FORMAT.LOGICAL-BLOCK.CIRCLE.1 FORMAT.LOGICAL-BLOCK.CIRCLE.2
     387      FORMAT.LOGICAL-BLOCK.CIRCLE.3 COMPILE-FILE.16 TRACE.8))
     388
     389(doit 0.26.1 :id saturn
     390     (DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21 DEFGENERIC.30
     391      CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2
     392      DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 MAKE-CONDITION.3
     393      MAKE-CONDITION.4 DELETE-PACKAGE.5 DELETE-PACKAGE.6 MAP.48
     394      TYPE-OF.1 TYPE-OF.4 ENSURE-DIRECTORIES-EXIST.8
     395      PRINT.SYMBOL.RANDOM.2 PRINT.RANDOM-STATE.1
     396      PPRINT-LOGICAL-BLOCK.17 FORMAT.C.2A FORMATTER.C.2A))
     397
     398(compileit 0.26.1 :id saturn
     399     (MULTIPLE-VALUE-PROG1.10 DEFGENERIC.ERROR.20 DEFGENERIC.ERROR.21
     400      DEFGENERIC.30 CALL-NEXT-METHOD.ERROR.1 CALL-NEXT-METHOD.ERROR.2
     401      DEFMETHOD.ERROR.14 DEFMETHOD.ERROR.15 MAKE-CONDITION.3
     402      MAKE-CONDITION.4 DELETE-PACKAGE.5 DELETE-PACKAGE.6 MAP.48
     403      TYPE-OF.1 TYPE-OF.4 ENSURE-DIRECTORIES-EXIST.8
     404      PRINT.RANDOM-STATE.1 PPRINT-LOGICAL-BLOCK.17 FORMAT.C.2A
     405      FORMATTER.C.2A TRACE.8))
     406
     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.