[gambit-list] Re: loading modules multiple times
Adam Langley
alangley at gmail.com
Thu Aug 11 09:41:56 EDT 2005
On 8/11/05, Christian <christian at pflanze.mine.nu> wrote:
> I'm wondering why you need that patch.
<snip>
Yes, I could catch the load exception but I don't want to copy and
paste that code into every module. Of course I could that module
loading form into its own module, but then how do I load that?
> Some words about the logic behind the error (from how I see it): load
> on source code can simply reload the source, there's no
> implementation problem with that. It does two things, reparse the
> source (which may have changed), and re-run it's body (which means,
> perform bindings, thus overwriting bindings which may have changed
> since after the first load).
Perfectly true and loading a source file multiple times is just fine.
I recognise the inconsistency between loading source multiple times
and loading a binary multiple times (with this patch); the former
running the body multiple times.
But modules generally pretty quickly reach the point where they stop
changing too often and end up compiled. Many of my .scm files will
start with something like
(load "srfi-1")
But, if I do that, then I can't ever create a higher level module
which imports either srfi-1 itself and a lower module, or imports two
lower modules which do.
Questions about design purity are moot while something so simple doesn't work.
chjmodule is a nice bit of code, but is very slow and has far too many
bodges necessitated by Gambit's code.
I can understand that people might want load to retain its original
behaviour and have this called load-once or some such. If there's any
support for this I'll redo the patch.
AGL
--
Adam Langley agl at imperialviolet.org
http://www.imperialviolet.org (+44) (0)7906 332512
PGP: 9113 256A CC0F 71A6 4C84 5087 CDA5 52DF 2CB6 3D60
More information about the Gambit-list
mailing list