I'm starting to develop quite a few libraries to run on top of Gambit Scheme for various project Euler problems. To better facilitate loading them and making sure that programs run with minimal hassle, I've split them up and created a very cheap framework to access the ones that are required to run any given program. This is similar to the way Emacs and Common Lisp do loading with require and such.
First you will need to check out my repository from Mercurial, which contains (at the moment) all my open source code. Then, inside your startup file (which is .gambcini on Unix) define tcv-lib-root to the location that all the library files are installed, and load the tcv-init.scm file. So for example my .gambcini file looks like this:
(define tcv-lib-root "/home/taylor/Public/Libraries/Scheme/Gambit") (load (path-expand "tcv-gambit.scm" tcv-lib-root))
Then when you want to use something, use the tcv-require function with either the name of the library you want as a symbol or as a list of libraries as symbols. For example, any of these will work:
(tcv-require 'string) (tcv-require 'list) (tcv-require '(geometry string)) (tcv-require (list 'io 'vector))
If a file has already been loaded, it won't be reloaded unless the modification time on the file is newer than it was when the file was last loaded. This will allow you to make changes and simply re-require it to get the new stuff.