On Tue, 26 Aug 2008 01:08:53 +0200 Luca Capello <[EMAIL PROTECTED]> wrote: > > OTOH, if you decide to keep it, there are a few other problems I > > noticed: > > > > - utilities.lisp doesn't have an IN-PACKAGE form, so it gets loaded > > in whatever random package happens to be active. > > Since it's loaded by all the three subsystems, I'd say it's correct.
Well, consider this transcript: * (defpackage :foo (:use :common-lisp)) #<PACKAGE "FOO"> * (in-package :foo) #<COMMON-LISP:PACKAGE "FOO"> * (require :geodesics) ..lots of compiling.. * (apropos "" :foo) ..lots of symbols defined in utilities.lisp.. Utilities.lisp clobbers variables and functions in whatever package the user happened to be in, that can't be right. And re-loading the geodesics fasls won't work if that :foo package no longer exists. > > - The GD-STATIC-EQUAL, GD-STATIC-UNEQUAL and GD-COSMOLOGICAL > > systems each define the same symbols in the GEODESICS package, so > > they can't be loaded simultaneously. But that's exactly what the > > GEODESICS system does. I think each of the GD-* systems needs to > > live in a separate package? > > I guess the idea was to having to load only one system instead of > three. It can also be possible to split geodesics.asd in three > different files, one for each subsystem, still providing the old > geodesics.asd which loads the three. But those three systems define functions with the exact same names: geodesics:a geodesics:da/dt geodesics:adash geodesics:n geodesics:dn/dt geodesics:ndash If you load GD-STATIC-UNEQUAL after GD-STATIC-EQUAL, you'll redefine GD-STATIC-EQUAL's functions. If you next load GD-COSMOLOGICAL, you'll just redefine them again. A system that loads more than one of these three is nonsensical. -- Peter De Wachter -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]