Changeset 8027 in project


Ignore:
Timestamp:
02/01/08 10:27:44 (12 years ago)
Author:
felix winkelmann
Message:
  • bootstrapping chicken from svn defaults to "chicken" (not prefixed one)
  • better ##sys#process-lambda-documentation hook
  • "repository-path" uses "CHICKEN_PREFIX"
Location:
chicken/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/Makefile.mingw

    r7180 r8027  
    210210        echo # define C_TARGET_STATIC_LIB_HOME "$(TARGET_PREFIX)/lib" >>$@
    211211        echo #endif >>$@
     212        echo #ifndef C_BINARY_VERSION >>$@
     213        echo # define C_BINARY_VERSION $(BINARYVERSION) >>$@
     214        echo #endif >>$@
    212215
    213216include rules.make
  • chicken/trunk/compiler.scm

    r7364 r8027  
    621621                            llist
    622622                            (lambda (vars argc rest)
    623                               (let* ([aliases (map gensym vars)]
    624                                      [ae2 (append (map cons vars aliases) ae)]
    625                                      [body0 (##sys#canonicalize-body obody (cut assq <> ae2) me dest)]
    626                                      [body (walk body0 ae2 me #f)]
    627                                      [llist2
     623                              (let* ((aliases (map gensym vars))
     624                                     (ae2 (append (map cons vars aliases) ae))
     625                                     (body0 (##sys#canonicalize-body obody (cut assq <> ae2) me dest))
     626                                     (body (walk body0 ae2 me #f))
     627                                     (llist2
    628628                                      (build-lambda-list
    629629                                       aliases argc
    630                                        (and rest (list-ref aliases (posq rest vars))) ) ] )
    631                                 (when dest
    632                                   (match body0
    633                                     (('begin (or (? string? doc) ('quote doc)) _ . more)
    634                                      (process-lambda-documentation dest doc) )
    635                                     (_ #f) ) )
     630                                       (and rest (list-ref aliases (posq rest vars))) ) )
     631                                     (l `(lambda ,llist2 ,body)) )
    636632                                (set-real-names! aliases vars)
    637                                 (cond [(and dest emit-profile (eq? 'lambda name))
    638                                        (expand-profile-lambda dest llist2 body) ]
    639                                       [else `(lambda ,llist2 ,body)] ) ) ) ) ) )
     633                                (if dest
     634                                    (if (and emit-profile (eq? 'lambda name))
     635                                        (expand-profile-lambda dest llist2 body)
     636                                        (match body0
     637                                          (('begin (or (? string? doc) ('quote doc)) _ . more)
     638                                           (process-lambda-documentation
     639                                            dest doc l) )
     640                                          (_ l) ) )
     641                                    l) ) ) ) ) )
    640642
    641643                        ((##core#named-lambda)
  • chicken/trunk/defaults.make

    r7764 r8027  
    247247# bootstrapping compiler
    248248
    249 CHICKEN = $(PREFIX)/bin/chicken$(EXE)
     249CHICKEN = chicken$(EXE)
    250250
    251251# Scheme compiler flags
     
    397397        echo "# define C_CHICKEN_BUG_PROGRAM \"$(CHICKEN_BUG_PROGRAM)\"" >>$@
    398398        echo "#endif" >>$@
    399 endif
    400 #
     399        echo "#ifndef C_BINARY_VERSION" >>$@
     400        echo "# define C_BINARY_VERSION $(BINARYVERSION)" >>$@
     401        echo "#endif" >>$@
     402endif
  • chicken/trunk/eval.scm

    r7839 r8027  
    128128(define-constant setup-file-extension "setup-info")
    129129(define-constant repository-environment-variable "CHICKEN_REPOSITORY")
     130(define-constant prefix-environment-variable "CHICKEN_PREFIX")
    130131(define-constant special-syntax-files '(chicken-ffi-macros chicken-more-macros))
     132(define-constant default-binary-version 3)
    131133
    132134; these are actually in unit extras, but that is used by default
     
    138140  '(srfi-6 srfi-8 srfi-9 srfi-11 srfi-15 srfi-16 srfi-17 srfi-26 srfi-55) )
    139141
     142(define ##sys#chicken-prefix
     143  (let ((prefix (and-let* ((p (getenv prefix-environment-variable)))
     144                  (##sys#string-append
     145                   p
     146                   (if (memq (string-ref p (fx- (##sys#size p) 1)) '(#\\ #\/))
     147                       "" "/") ) ) ) )
     148    (lambda (#!optional dir)
     149      (and prefix
     150           (if dir (##sys#string-append prefix dir) prefix) ) ) ) )
     151         
    140152
    141153;;; System settings
     
    144156  (let ([getenv getenv])
    145157    (lambda ()
    146       (or (and-let* ((p (getenv "CHICKEN_PREFIX")))
    147             (##sys#string-append
    148              p
    149              (if (memq (string-ref p (fx- (##sys#size p) 1)) '(#\\ #\/))
    150                  "share"
    151                  "/share") ) )
     158      (or (##sys#chicken-prefix "share/chicken")
    152159          installation-home) ) ) )
    153160
     
    13051312  (make-parameter
    13061313   (or (getenv repository-environment-variable)
     1314       (##sys#chicken-prefix
     1315        (##sys#string-append
     1316         "lib/chicken/"
     1317         (##sys#number->string (or (##sys#fudge 42) default-binary-version)) ) )
    13071318       install-egg-home) ) )
    13081319
  • chicken/trunk/runtime.c

    r7945 r8027  
    42774277    return C_fix(C_MAJOR_VERSION);
    42784278
     4279  case C_fix(42):
     4280#ifdef C_BINARY_VERSION
     4281    return C_fix(C_BINARY_VERSION);
     4282#else
     4283    return C_SCHEME_FALSE;
     4284#endif
     4285
    42794286  default: return C_SCHEME_UNDEFINED;
    42804287  }
  • chicken/trunk/support.scm

    r7180 r8027  
    332332(define decompose-lambda-list ##sys#decompose-lambda-list)
    333333
    334 (define (process-lambda-documentation id doc)
    335   #f)                                   ; Hook this
     334(define (process-lambda-documentation id doc proc)
     335  proc)                                 ; Hook this
    336336
    337337
     
    509509    (define (walk x)
    510510      (cond ((symbol? x) (varnode x))
    511             ((not-pair? x) (bomb "bad expression"))
     511            ((not-pair? x) (bomb "bad expression" x))
    512512            ((symbol? (car x))
    513513             (case (car x)
Note: See TracChangeset for help on using the changeset viewer.