
1: ;;; 2: ;;; gauche-init.scm - initialize standard environment 3: ;;; 4: ;;; Copyright (c) 2000-2007 Shiro Kawai <shiro@acm.org> 5: ;;; 6: ;;; Redistribution and use in source and binary forms, with or without 7: ;;; modification, are permitted provided that the following conditions 8: ;;; are met: 9: ;;; 10: ;;; 1. Redistributions of source code must retain the above copyright 11: ;;; notice, this list of conditions and the following disclaimer. 12: ;;; 13: ;;; 2. Redistributions in binary form must reproduce the above copyright 14: ;;; notice, this list of conditions and the following disclaimer in the 15: ;;; documentation and/or other materials provided with the distribution. 16: ;;; 17: ;;; 3. Neither the name of the authors nor the names of its contributors 18: ;;; may be used to endorse or promote products derived from this 19: ;;; software without specific prior written permission. 20: ;;; 21: ;;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22: ;;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23: ;;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24: ;;; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25: ;;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26: ;;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 27: ;;; TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 28: ;;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 29: ;;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 30: ;;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 31: ;;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32: ;;; 33: ;;; $Id: gauche-init.scm,v 1.124 2007/03/07 04:29:14 shirok Exp $ 34: ;;; 35: 36: (select-module gauche) 37: 38: ;; 39: ;; Loading, require and provide 40: ;; 41: 42: ;; Load path needs to be dealt with at the compile time. this is a 43: ;; hack to do so. Don't modify *load-path* directly, since it causes 44: ;; weird compiler-evaluator problem. 45: ;; I don't like the current name "add-load-path", though---looks like 46: ;; more a procedure than a compiler syntax---any ideas? 47: (define-macro (add-load-path path . args) 48: `',(apply %add-load-path path args)) 49: 50: (define-macro (autoload file . vars) 51: `(%autoload (current-module) ',file ',vars)) 52: 53: ;; Preferred way 54: ;; (use x.y.z) ==> (require "x/y/z") (import x.y.z) 55: 56: (define-macro (use module) 57: `(begin 58: (with-module gauche 59: (require ,(module-name->path module))) 60: (import ,module))) 61: 62: ;; create built-in modules, so that (use srfi-6) won't complain, for example. 63: (define-module srfi-2 ) 64: (define-module srfi-6 ) 65: (define-module srfi-8 ) 66: (define-module srfi-10 ) 67: (define-module srfi-17 ) 68: 69: ;; for backward compatibility 70: (define-module gauche.vm.debugger ) 71: