gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] conditions/clos/gcl unified build patch and instruct


From: Camm Maguire
Subject: Re: [Gcl-devel] conditions/clos/gcl unified build patch and instructions.
Date: 07 Jun 2002 13:36:10 -0400

Greetings!  OK, Vadim, could you please check out the latest?  All I
did was setup common-lisp and common-lisp user in C as their old
analogs were, without changing the default symbol creation code
(i.e. make_ordinary still adds to the lisp package, etc.)

Here is my startup gcl session.  Could you propose a cleaned/corrected
version of something like the following?  (I don't know what it means
for one package to "use" another exactly -- I thought common-lisp-user
would inherit the changes to common-lisp, but apparently not).

Take care,
=============================================================================

intech19:~/gcl/tmp/foo$ unixport/saved_gcl
GCL (GNU Common Lisp)  Version(2.5.0) Fri Jun  7 13:22:58 EDT 2002
Licensed under GNU Library General Public License
Contains Enhancements by W. Schelter

>      (let ((lst ()))
        (do-symbols (s (find-package 'common-lisp)) (push s lst))
        lst)


(NIL T)

>      (let ((lst ()))
        (do-symbols (s (find-package 'common-lisp-user)) (push s lst))
        lst)


NIL

>(setq lisp_unexport
 '(LISP::LAMBDA-BLOCK-CLOSURE
   LISP::BYE
   LISP::QUIT
   LISP::EXIT
   LISP::IEEE-FLOATING-POINT
   LISP::DEFENTRY
   LISP::VOID
   LISP::ALLOCATE-CONTIGUOUS-PAGES
   LISP::UNSIGNED-SHORT
   LISP::DOUBLE
   LISP::BY
   LISP::GBC
   LISP::DEFCFUN
   LISP::SAVE
   LISP::MAXIMUM-CONTIGUOUS-PAGES
   LISP::SPICE
   LISP::DEFLA
   LISP::ALLOCATED-PAGES
   LISP::SUN
   LISP::INT
   LISP::USE-FAST-LINKS
   LISP::CFUN
   LISP::UNSIGNED-CHAR
   LISP::HELP
   LISP::HELP*
   LISP::MACRO
   LISP::*BREAK-ENABLE*
   LISP::CLINES
   LISP::LAMBDA-CLOSURE
   LISP::OBJECT
   LISP::FAT-STRING
   LISP::SIGNED-SHORT
   LISP::MC68020
   LISP::LAMBDA-BLOCK
   LISP::TAG
   LISP::PROCLAMATION
   LISP::ALLOCATED-CONTIGUOUS-PAGES
   LISP::*EVAL-WHEN-COMPILE*
   LISP::SIGNED-CHAR
   LISP::*IGNORE-MAXIMUM-PAGES*
   LISP::*LINK-ARRAY*
   LISP::KCL
   LISP::BSD
   LISP::ALLOCATE-RELOCATABLE-PAGES
   LISP::ALLOCATE
   LISP::UNIX
   LISP::MAXIMUM-ALLOCATABLE-PAGES
   LISP::ALLOCATED-RELOCATABLE-PAGES
   LISP::SYSTEM
   LISP::KYOTO
   LISP::CCLOSURE))


(LAMBDA-BLOCK-CLOSURE BYE QUIT EXIT IEEE-FLOATING-POINT DEFENTRY
  VOID
  LISP::ALLOCATE-CONTIGUOUS-PAGES
  UNSIGNED-SHORT
  DOUBLE
  BY
  GBC
  DEFCFUN
  SAVE
  LISP::MAXIMUM-CONTIGUOUS-PAGES
  SPICE
  DEFLA
  LISP::ALLOCATED-PAGES
  LISP::SUN
  INT
  LISP::USE-FAST-LINKS
  CFUN
  UNSIGNED-CHAR
  HELP
  HELP*
  MACRO
  *BREAK-ENABLE*
  CLINES
  LAMBDA-CLOSURE
  OBJECT
  LISP::FAT-STRING
  SIGNED-SHORT
  MC68020
  LAMBDA-BLOCK
  TAG
  PROCLAMATION
  LISP::ALLOCATED-CONTIGUOUS-PAGES
  *EVAL-WHEN-COMPILE*
  SIGNED-CHAR
  LISP::*IGNORE-MAXIMUM-PAGES*
  *LINK-ARRAY*
  KCL
  BSD
  LISP::ALLOCATE-RELOCATABLE-PAGES
  ALLOCATE
  UNIX
  LISP::MAXIMUM-ALLOCATABLE-PAGES
  LISP::ALLOCATED-RELOCATABLE-PAGES
  SYSTEM
  KYOTO
  CCLOSURE)

>(do-external-symbols (s "LISP")
  (if (not(member s lisp_unexport))
      (import s "COMMON-LISP")))


NIL

>(do-symbols (s "COMMON-LISP")
  (export s "COMMON-LISP"))


NIL

>      (let ((lst ()))
        (do-symbols (s (find-package 'common-lisp)) (push s lst))
        lst)


(PATHNAMEP INTERN STEP COERCE WARN WITH-OUTPUT-TO-STRING
    STRING-NOT-LESSP MAKE-STRING-INPUT-STREAM MAKE-STRING-OUTPUT-STREAM
    BOOLE-ORC1 BOOLE-ORC2 STRING-LEFT-TRIM FLOAT-PRECISION PLUSP BOOLE
    NSUBSTITUTE-IF-NOT PROG1 SVREF INTERNAL-TIME-UNITS-PER-SECOND
    PATHNAME-DEVICE HASH-TABLE-TEST COSH SIGNUM REM APPEND
    FILE-NAMESTRING SPEED WRITE-CHAR SUBTYPEP FROUND DECODE-FLOAT
    COMPILATION-SPEED ABS MULTIPLE-VALUE-BIND LCM LOGTEST
    *PRINT-ESCAPE* *PRINT-BASE* *PRINT-CASE* LONG-FLOAT SIMPLE-STRING-P
    CHAR= LOGNOT GET-SETF-METHOD-MULTIPLE-VALUE RANDOM CDDAR CADR
    SIMPLE-STRING REPLACE IMPORT PROVIDE CLRHASH USER-HOMEDIR-PATHNAME
    GENTEMP VECTOR FCEILING BOOLE-C2 DECLAIM DESCRIBE DELETE-FILE TYPEP
    UNEXPORT REAL SET-MACRO-CHARACTER GET-MACRO-CHARACTER SETQ
    RENAME-FILE NINTERSECTION BYTE-SIZE SYMBOLP ROTATEF CHAR-NAME
    READ-LINE *** ARRAY-ELEMENT-TYPE Y-OR-N-P FMAKUNBOUND BIGNUM
    MAKE-HASH-TABLE LOCALLY ADJOIN CONCATENATE SET-SYNTAX-FROM-CHAR
    DENOMINATOR BIT-ORC2 REMPROP STANDARD-CHAR-P EQ CDADDR PI SUBSETP
    SYMBOL-PLIST FORMAT GO *PRINT-GENSYM* COPY-TREE LOGANDC1 LOAD
    LIST-ALL-PACKAGES CLEAR-OUTPUT CAADDR DO BYTE-POSITION
    DEPOSIT-FIELD SET-EXCLUSIVE-OR DIRECTORY VECTOR-PUSH-EXTEND
    FILE-POSITION CHAR-INT MACRO-FUNCTION SHORT-SITE-NAME
    NSTRING-UPCASE READ &ENVIRONMENT BLOCK CALL-ARGUMENTS-LIMIT THROW
    PHASE PROBE-FILE CHAR< STRING-RIGHT-TRIM RATIONALP *DEBUG-IO*
    DOUBLE-FLOAT-EPSILON DOUBLE-FLOAT-NEGATIVE-EPSILON
    SET-DISPATCH-MACRO-CHARACTER GET-DISPATCH-MACRO-CHARACTER
    STRING-UPCASE STRING-DOWNCASE LOGXOR IN-PACKAGE SQRT SUBST-IF-NOT
    COPY-READTABLE SORT ALPHA-CHAR-P SXHASH CADDR EXPT REVAPPEND CATCH
    TRUENAME RANDOM-STATE-P >= DEFINE-MODIFY-MACRO DEFMACRO <= BIT-NOT
    CONSTANTP SIMPLE-BIT-VECTOR LOGNOR POSITION NUNION FFLOOR
    DO-SYMBOLS HASH-TABLE-COUNT DEFCONSTANT DEFTYPE IMAGPART VARIABLE
    SYMBOL-NAME MACROEXPAND /= TRACE WITH-OPEN-FILE RPLACA BOOLE-IOR
    MACHINE-VERSION DOCUMENTATION FLOAT-SIGN PACKAGE SPACE SFUN
    SYMBOL-FUNCTION *STANDARD-INPUT* SHADOW LET* TRUNCATE_USE_C EXP
    DELETE BOOLE-ANDC1 *READ-SUPPRESS* GFUN NTHCDR SAFETY
    LAMBDA-LIST-KEYWORDS // ELT 1- DECODE-UNIVERSAL-TIME GENSYM 1+ SIN
    REMOVE-IF-NOT CDDDAR EQUAL COMMON DEFSETF NTH CADDAR PPRINT LOGEQV
    FIND-IF STREAM BIT-ANDC2 BOOLE-AND OPEN &OPTIONAL SHORT-FLOAT MIN
    ++ ISQRT CODE-CHAR LENGTH LOGNAND WHEN DELETE-IF-NOT TAN ROUND
    PROGN MEMBER-IF-NOT RASSOC BOOLE-NAND INTEGERP SEVENTH
    MOST-NEGATIVE-FIXNUM CHAR-UPCASE ZEROP ASSOC-IF-NOT STRING-EQUAL
    READ-CHAR PEEK-CHAR CAR EQUALP EXPORT NRECONC ATAN NSUBST MAKE-CHAR
    NAME-CHAR GET-UNIVERSAL-TIME BIT-NOR COMPLEXP LIST-LENGTH
    SIMPLE-VECTOR MAKE-SYMBOL SUBSTITUTE-IF-NOT SIGNED-BYTE *READTABLE*
    STRING<= STRING>= STRING/= DEFPARAMETER PATHNAME-DIRECTORY
    REMOVE-DUPLICATES LOGCOUNT COND COMPILE PRINT &WHOLE AND IGNORE
    UNLESS CDAAR MAPLIST THIRD CAAR MOST-NEGATIVE-SHORT-FLOAT
    MOST-NEGATIVE-SINGLE-FLOAT MOST-NEGATIVE-DOUBLE-FLOAT
    MOST-NEGATIVE-LONG-FLOAT GETHASH PSETQ LISP-IMPLEMENTATION-TYPE
    FIND STANDARD-CHAR UNREAD-CHAR DELETE-DUPLICATES FILE-LENGTH
    ARRAY-TOTAL-SIZE AREF LDB-TEST LABELS CONS PACKAGE-NICKNAMES EVERY
    SHIFTF IDENTITY DIGIT-CHAR-P ROOM COMPILE-FILE TAGBODY
    SIMPLE-BIT-VECTOR-P TERPRI BIT-XOR PSETF YES-OR-NO-P NUMERATOR
    *PRINT-LENGTH* NSTRING-CAPITALIZE TREE-EQUAL *READ-BASE*
    WRITE-STRING ARRAY-IN-BOUNDS-P SUBST-IF DECF FINISH-OUTPUT PAIRLIS
    DEFVAR RETURN READ-PRESERVING-WHITESPACE CDADAR CHAR-EQUAL
    COPY-SYMBOL NSET-EXCLUSIVE-OR CAADAR KEYWORD DECLARATION COPY-SEQ
    NSUBST-IF-NOT CHAR-FONT NSUBST-IF FIND-PACKAGE SOFTWARE-VERSION
    LOGBITP *EVALHOOK* LEAST-NEGATIVE-SHORT-FLOAT
    LEAST-NEGATIVE-SINGLE-FLOAT LEAST-NEGATIVE-DOUBLE-FLOAT
    LEAST-NEGATIVE-LONG-FLOAT LEAST-NEGATIVE-NORMALIZED-SHORT-FLOAT
    LEAST-NEGATIVE-NORMALIZED-SINGLE-FLOAT
    LEAST-NEGATIVE-NORMALIZED-DOUBLE-FLOAT
    LEAST-NEGATIVE-NORMALIZED-LONG-FLOAT MERGE *PRINT-PRETTY*
    DIRECTORY-NAMESTRING FTYPE COMPILED-FUNCTION &KEY STRING-NOT-EQUAL
    FIRST ALPHANUMERICP NINTH TENTH CTYPECASE ETYPECASE STRING
    GET-DECODED-TIME NAMESTRING NREVERSE PUSHNEW SUBST DO* FIXNUM
    DO-ALL-SYMBOLS DOUBLE-FLOAT CAADR COPY-ALIST COMMONP NSUBSTITUTE
    FBOUNDP PACKAGEP LIST REST SHORT-FLOAT-EPSILON
    SHORT-FLOAT-NEGATIVE-EPSILON STREAM-ELEMENT-TYPE VECTORP WRITE-LINE
    ARRAYP FIND-IF-NOT STREAMP INT-CHAR EVALHOOK CASE INLINE
    READ-FROM-STRING ASSERT FOURTH ACONS SYMBOL-PACKAGE SUBSTITUTE LAST
    STRING-TRIM NOTINLINE FIFTH FLOAT-DIGITS *BREAK-ON-WARNINGS*
    GET-PROPERTIES LIST* SHADOWING-IMPORT NSTRING-DOWNCASE
    WITH-INPUT-FROM-STRING SIMPLE-VECTOR-P CDDADR DECLARE BIT-VECTOR-P
    STRING-GREATERP INTEGER-LENGTH CADADR SBIT WITH-HASH-TABLE-ITERATOR
    NSET-DIFFERENCE CHAR-HYPER-BIT COS COMPILER-LET RASSOC-IF-NOT
    SIMPLE-ARRAY TAILP CHAR>= *QUERY-IO* &AUX *PRINT-LEVEL* DIGIT-CHAR
    SOFTWARE-TYPE FLET MOST-POSITIVE-FIXNUM FUNCTION CHAR-SUPER-BIT
    ATANH SCHAR RPLACD CHAR-NOT-LESSP FTRUNCATE MULTIPLE-VALUES-LIMIT
    CIS ARRAY-DIMENSIONS UNUSE-PACKAGE ARRAY-RANK-LIMIT RASSOC-IF
    UNTRACE SINGLE-FLOAT-EPSILON SINGLE-FLOAT-NEGATIVE-EPSILON
    CHAR-BITS DRIBBLE LOGORC2 ADJUSTABLE-ARRAY-P CLEAR-INPUT PROGV
    *FEATURES* *PACKAGE* SETF BUTLAST CHECK-TYPE REALP
    ARRAY-HAS-FILL-POINTER-P BSD386 DO-EXTERNAL-SYMBOLS
    LONG-FLOAT-EPSILON LONG-FLOAT-NEGATIVE-EPSILON LOG PARSE-INTEGER
    NOTEVERY APROPOS-LIST POSITION-IF-NOT *PRINT-ARRAY* FLOAT
    RATIONALIZE BIT-VECTOR LOGANDC2 MOST-POSITIVE-SHORT-FLOAT
    MOST-POSITIVE-SINGLE-FLOAT MOST-POSITIVE-DOUBLE-FLOAT
    MOST-POSITIVE-LONG-FLOAT INTEGER THE COUNT-IF-NOT EVAL GETF MAPCON
    *TERMINAL-IO* CDDR STABLE-SORT CHAR-META-BIT VALUES *PRINT-RADIX*
    SGC CADAR BOOLE-EQV PARSE-NAMESTRING SEQUENCE READTABLE READTABLEP
    VALUES-LIST TYPE-OF AKCL OR HASH-TABLE-SIZE CLX-LITTLE-ENDIAN
    INSPECT NSUBSTITUTE-IF LOGORC1 CHARACTER CHARACTERP FILE-WRITE-DATE
    VECTOR-PUSH CLOSE FILE-AUTHOR SCALE-FLOAT
    LISP-IMPLEMENTATION-VERSION MEMBER-IF MAP-INTO PATHNAME-NAME
    CEILING STRING-NOT-GREATERP ERROR ARRAY-ROW-MAJOR-INDEX MAPCAR
    STRINGP ARRAY-DIMENSION-LIMIT DESTRUCTURING-BIND CERROR
    MACROEXPAND-1 CHAR-GREATERP CDAADR DEFINE-SETF-METHOD TYPE SUBSEQ
    SPECIAL-OPERATOR-P PRIN1 CAAADR PACKAGE-NAME HOST-NAMESTRING
    DEFSTRUCT SUBLIS TYPECASE ACOS ARRAY-DISPLACEMENT IF
    GET-INTERNAL-REAL-TIME GET-INTERNAL-RUN-TIME BYTE PROG BOOLE-C1
    HASH-TABLE-P MAKE-RANDOM-STATE NUMBERP LAMBDA MAKE-PATHNAME ED
    MULTIPLE-VALUE-CALL OUTPUT-STREAM-P CHAR-LESSP RANDOM-STATE
    MAKE-ECHO-STREAM STRING-CAPITALIZE SPECIAL ARRAY-DIMENSION CDDDR
    BIT-ORC1 MAKE-SEQUENCE REVERSE PACKAGE-USE-LIST
    PACKAGE-USED-BY-LIST MERGE-PATHNAMES PROG* ECASE GET-SETF-METHOD
    CCASE UNINTERN CHAR-CODE-LIMIT CHAR-FONT-LIMIT
    ENCODE-UNIVERSAL-TIME BOOLE-2 MAKE-ARRAY CHAR<= COPY-LIST KEYWORDP
    COMPILED-FUNCTION-P RATIO APROPOS REALPART RATIONAL CHAR-BITS-LIMIT
    LOGIOR BOUNDP MAKE-BROADCAST-STREAM LAMBDA-PARAMETERS-LIMIT
    MISMATCH COUNT-IF POSITION-IF MAKE-LIST *MODULES* NOT
    RENAME-PACKAGE EVENP STRING-CHAR-P MINUSP UPPER-CASE-P
    *MACROEXPAND-HOOK* POP LONG-SITE-NAME NULL BOOLE-NOR RETURN-FROM
    STRING> ASSOC-IF LOGAND SET LDIFF MAX FLOATP BOOLE-1 CONJUGATE
    UNION LET EVAL-WHEN REMOVE GMP &REST BIT
    *READ-DEFAULT-FLOAT-FORMAT* CDDAAR NUMBER PATHNAME GET
    GET-OUTPUT-STREAM-STRING UNWIND-PROTECT ASIN &BODY EQL CADAAR
    GRAPHIC-CHAR-P *LOAD-VERBOSE* LEAST-POSITIVE-SHORT-FLOAT
    LEAST-POSITIVE-SINGLE-FLOAT LEAST-POSITIVE-DOUBLE-FLOAT
    LEAST-POSITIVE-LONG-FLOAT LEAST-POSITIVE-NORMALIZED-SHORT-FLOAT
    LEAST-POSITIVE-NORMALIZED-SINGLE-FLOAT
    LEAST-POSITIVE-NORMALIZED-DOUBLE-FLOAT
    LEAST-POSITIVE-NORMALIZED-LONG-FLOAT PATHNAME-HOST ASSOC BIT-EQV **
    NIL SPECIAL-FORM-P BIT-IOR SINH MAPL INTEGER-DECODE-FLOAT MAP
    FUNCALL CHAR-BIT ENDP CDR FILL MACHINE-INSTANCE PROCLAIM ASH SECOND
    DEFUN /// MAKE-DISPATCH-MACRO-CHARACTER ODDP CHAR-DOWNCASE
    WITH-OPEN-STREAM MOD BOOLE-XOR DISASSEMBLE LOWER-CASE-P BOTH-CASE-P
    ARRAY SYMBOL-VALUE TRUNCATE SINGLE-FLOAT COUNT TANH CONSP COMPLEX
    STRING= CHAR ADJUST-ARRAY GCL SEARCH FIND-SYMBOL REMF DOLIST
    ENOUGH-NAMESTRING T MULTIPLE-VALUE-PROG1 CDAR USE-PACKAGE
    *RANDOM-STATE* DPB *ERROR-OUTPUT* CHAR-CONTROL-BIT PATHNAME-VERSION
    MAKUNBOUND +++ NOTANY CAAAR SET-CHAR-BIT BIT-ANDC1 SATISFIES
    VECTOR-POP INTERSECTION FUNCTIONP LDB ACOSH GCD ARRAY-RANK MAPHASH
    EIGHTH INCF STRUCTURE APPLYHOOK CHAR-CODE OPTIMIZE > = MEMBER
    BOOLE-ANDC2 < LISTEN MAKE-CONCATENATED-STREAM FIND-ALL-SYMBOLS
    SIXTH APPLY REMOVE-IF STRING< NSUBLIS ATOM OTHERWISE
    *DEFAULT-PATHNAME-DEFAULTS* DELETE-IF MAPCAN MULTIPLE-VALUE-LIST
    PACKAGE-SHADOWING-SYMBOLS STRING-LESSP WRITE-TO-STRING / FLOOR
    PRIN1-TO-STRING PRINC-TO-STRING - BIT-NAND SYMBOL SUBSTITUTE-IF +
    LISTP CDAAAR * MACROLET DOTIMES CAAAAR MASK-FIELD QUOTE
    MAKE-PACKAGE *APPLYHOOK* BOOLE-CLR *TRACE-OUTPUT* CHAR-NOT-GREATERP
    BOOLE-SET READ-CHAR-NO-HANG HASH-TABLE SOME SLEEP *PRINT-CIRCLE*
    CHAR/= FORCE-OUTPUT REQUIRE PROG2 PRINC PATHNAME-TYPE BREAK CDADR
    TIME REDUCE WRITE CHAR-NOT-EQUAL NBUTLAST UNSIGNED-BYTE
    FILL-POINTER ARRAY-TOTAL-SIZE-LIMIT FRESH-LINE READ-BYTE NCONC
    MAKE-TWO-WAY-STREAM MACHINE-TYPE MAKE-SYNONYM-STREAM STRING-CHAR
    MULTIPLE-VALUE-SETQ CHAR> *STANDARD-OUTPUT* SET-DIFFERENCE
    WRITE-BYTE MAPC INPUT-STREAM-P REMHASH LOOP CDDDDR
    READ-DELIMITED-LIST FLOAT-RADIX MAKE-STRING ASINH PUSH BIT-AND
    CADDDR &ALLOW-OTHER-KEYS)

>      (let ((lst ()))
        (do-symbols (s (find-package 'common-lisp-user)) (push s lst))
        lst)


NIL

>(bye)


=============================================================================


> 
> So I suggest the following scheme:
> 
> 1. Let LISP remains as it is without any modification for the sake of
> compatibility.
> 

> 2. We create new package COMMON-LISP (CL) and populate it
> with all required by ANSI CL symbols importing them from LISP,
> PCL, CONDITIONS etc.
> 

> 3. We rename USER to COMMON-LISP-USER with aliases CL-USER
> and USER.
> 
> The only thing which is not clear to me is the contents of CL-USER.
> As standard requires we must import in it all symbols from COMMON-LISP.
> But probably we want to see here some other useful implementation dependent
> symbols like BYE, QUIT.  On the other hand it is not wise to expose here
> all GCL specific symbols like this notorious INT.
> 
> >
> > Also in main.c, there is an example of how to use the C functions import
> > and export to import nil (Cnil) and t (Ct) into a package. This should
> > solve the NIL problem that you mentioned (There's nothing like working
> > around a bug instead of fixing it. ;).
> >
> 
> Yes but we certainly want that all functions import, export, use-package
> work correctly on the lisp level.
> 
> >
> > Once nil (and possibly t) are imported into the packages, the rest of cl
> > and cl-user could either be populated the lisp way, or the same way that
> > GCL does a lot of it (in C files).
> >
> > J*
> >
> > _______________________________________________
> > Gcl-devel mailing list
> > address@hidden
> > http://mail.gnu.org/mailman/listinfo/gcl-devel
> 
> --
>      Vadim V. Zhytnikov
> 
>       <address@hidden>
>     <address@hidden>
>      <address@hidden>
> 
> 
> 
> 
> 

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]