1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

fix ice-9/slib

* module/ice-9/slib.scm: Change to just load up slib.init directly.  The
  recently submitted patch to slib-discuss and guile-user should make
  this work correctly.
This commit is contained in:
Andy Wingo 2013-01-10 17:30:38 +01:00
parent 921cd222b9
commit b194b59fa1

View file

@ -1,6 +1,6 @@
;;;; slib.scm --- definitions needed to get SLIB to work with Guile
;;;;
;;;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
;;;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2013 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@ -16,27 +16,18 @@
;;;; License along with this library; if not, write to the Free Software
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
;;;;
(define-module (ice-9 slib)
:export (slib:load slib:load-source defmacro:load
implementation-vicinity library-vicinity home-vicinity
scheme-implementation-type scheme-implementation-version
output-port-width output-port-height array-indexes
make-random-state
-1+ <? <=? =? >? >=?
require slib:error slib:exit slib:warn slib:eval
defmacro:eval logical:logand logical:logior logical:logxor
logical:lognot logical:ash logical:logcount logical:integer-length
logical:bit-extract logical:integer-expt logical:ipow-by-squaring
slib:eval-load slib:tab slib:form-feed difftime offset-time
software-type)
:no-backtrace)
;; Initialize SLIB.
(load-from-path "slib/guile.init")
;;; Look for slib.init in the $datadir, in /usr/share, and finally in
;;; the load path. It's not usually in the load path on common distros,
;;; but it could be if the user put it there. The init file takes care
;;; of defining the module.
;; SLIB redefines a few core symbols based on their default definition.
;; Thus, we only replace them at this point so that their previous definition
;; is visible when `guile.init' is loaded.
(module-replace! (current-module)
'(delete-file open-file provide provided? system))
(let ((try-load (lambda (dir)
(let ((init (string-append dir "/slib/guile.init")))
(and (file-exists? init)
(begin
(load init)
#t))))))
(or (try-load (assq-ref %guile-build-info 'datadir))
(try-load "/usr/share")
(load-from-path "slib/guile.init")))