Something curious

From: Harvey J. Stein <hjstein_at_MATH.HUJI.AC.IL>
Date: Thu, 24 Aug 1995 18:17:41 +0300

Giorgio Cesana writes:
> > STk
> Welcome to the STk...
> STk> (set! *load-verbose* #t)
> #[undefined]
> STk> (require "Frame")
> ;; Loading file "/path/STk/STk/Frame.stk"
> ;; Loading file "/path/STk/STk/Basics.stk"
> ;; Loading file "/path/STk/STk/Tk-meta.stk"
> ;; Loading file "/path/STk/STk/stklos.stk"
> ;; Loading file "/path/STk/STk/hash.stk"
> ;; Loading file "/path/STk/SunOS-4.1-sun4m/hash.so"
> ;; Loading file "/path/STk/SunOS-4.1-sun4m/stklos.so"
> "Frame"
> STk> (require "Tk-classes")
> ;; Loading file "/path/STk/STk/Tk-classes.stk"
> "Tk-classes"
>
> Now if I try to require again "Frame" I get correctly:
> STk> (require "Frame")
> "Frame"
>
> but if I try to use the Frame class I obtain:
> STk> (make <Frame>)
> ;; Loading file "/path/STk/STk/Frame.stk"
> ;; Loading file "/path/STk/STk/Tk-methods.stk"
> #[<frame> d8964]
> THE FILE "Frame.stk" IS LOADED TWICE (the first time when requiring it, the
> second when using the class).
>
> Why this?

It has nothing to do with the second (require "Frame"). It has to do
with doing (require "Tk-classes") after (require "Frame").

The problem is that when you do (require "Tk-classes") it sets up the
symbols for autoloading, and I guess it doesn't first check if they're
already loaded.

In any case, you can solve the problem by making (require
"Tk-classes") your first require.

Good luck,

Dr. Harvey J. Stein
Berger Financial Research
hjstein_at_math.huji.ac.il
Received on Thu Aug 24 1995 - 17:20:28 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST