diff options
author | Andy Wingo <wingo@pobox.com> | 2013-01-10 17:30:38 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-01-10 17:30:38 +0100 |
commit | b194b59fa10574868f7b1663a1f2d447baa18c5e (patch) | |
tree | 633d9d0ba595b87dd77b716bfef475757a18e934 | |
parent | 921cd222b992f719dc870239bc196688b8d3d507 (diff) | |
download | guile-b194b59fa10574868f7b1663a1f2d447baa18c5e.tar.gz |
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.
-rw-r--r-- | module/ice-9/slib.scm | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/module/ice-9/slib.scm b/module/ice-9/slib.scm index 78c734e2a..766418010 100644 --- a/module/ice-9/slib.scm +++ b/module/ice-9/slib.scm @@ -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"))) |