Changeset 15438 in project for chicken/trunk/eval.scm


Ignore:
Timestamp:
08/13/09 18:36:10 (11 years ago)
Author:
felix winkelmann
Message:

reactivated SONAME, possibly messed everything up

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/eval.scm

    r15203 r15438  
    4848#ifndef C_INSTALL_SHARE_HOME
    4949# define C_INSTALL_SHARE_HOME NULL
     50#endif
     51
     52#ifndef C_BINARY_VERSION
     53# define C_BINARY_VERSION      4
    5054#endif
    5155<#
     
    9599(define-foreign-variable install-egg-home c-string "C_INSTALL_EGG_HOME")
    96100(define-foreign-variable installation-home c-string "C_INSTALL_SHARE_HOME")
     101(define-foreign-variable binary-version int "C_BINARY_VERSION")
    97102
    98103(define ##sys#core-library-modules
     
    113118(define-constant repository-environment-variable "CHICKEN_REPOSITORY")
    114119(define-constant prefix-environment-variable "CHICKEN_PREFIX")
    115 (define-constant default-binary-version 4)
    116120
    117121; these are actually in unit extras, but that is used by default
    118122; srfi-12 in unit library
    119 ; srfi-98 partically in unit posix
     123; srfi-98 partially in unit posix
    120124
    121125(define-constant builtin-features
     
    9991003
    10001004(define dynamic-load-libraries
    1001   (make-parameter
    1002    (map (cut ##sys#string-append <> ##sys#load-library-extension) ##sys#default-dynamic-load-libraries)
    1003    (lambda (x)
    1004      (##sys#check-list x)
    1005      x) ) )
     1005  (let ((complete
     1006         (let ((ext
     1007                (case (software-version)
     1008                  ((linux)
     1009                   (string-append
     1010                    ##sys#load-library-extension
     1011                    "."
     1012                    (number->string binary-version)))
     1013                  (else ##sys#load-library-extension))))
     1014           (cut ##sys#string-append <> ext))))
     1015    (make-parameter
     1016     (map complete ##sys#default-dynamic-load-libraries)
     1017     (lambda (x)
     1018       (##sys#check-list x)
     1019       x) ) ) )
    10061020
    10071021(define ##sys#load-library
     
    11221136(define ##sys#load-extension
    11231137  (let ((string->symbol string->symbol))
    1124     (lambda (id loc . err?)
     1138    (lambda (id loc #!optional (err? #t))
    11251139      (cond ((string? id) (set! id (string->symbol id)))
    11261140            (else (##sys#check-symbol id loc)) )
     
    11281142        (cond ((member p ##sys#loaded-extensions))
    11291143              ((memq id ##sys#core-library-modules)
    1130                (##sys#load-library id #f) )
     1144               (or (##sys#load-library id #f)
     1145                   (and err?
     1146                        (##sys#error loc "cannot load core library" id))))
    11311147              (else
    11321148               (let ([id2 (##sys#find-extension p #t)])
     
    11351151                        (set! ##sys#loaded-extensions (cons p ##sys#loaded-extensions))
    11361152                        #t)
    1137                        ((optional err? #t) (##sys#error loc "cannot load extension" id))
     1153                       (err? (##sys#error loc "cannot load extension" id))
    11381154                       (else #f) ) ) ) ) ) ) ) )
    11391155
     
    12191235                 (if comp?
    12201236                     `(##core#declare (uses ,id))
    1221                      `(##sys#load-library ',id #f) )
     1237                     `(load-library ',id #f) )
    12221238                 id #t)
    12231239                #t) )
     
    12311247                       (if comp?
    12321248                           `(##core#declare (uses ,id))
    1233                            `(##sys#load-library ',id #f) )
     1249                           `(load-library ',id #f) )
    12341250                       id #f))
    12351251                  #t) ) )
Note: See TracChangeset for help on using the changeset viewer.