Darn, It is not due to copy and paste, but rather due to a module in the 
require chain using require for syntax. Details and questions follow.

So here we enter extentions-lib.  This causes the test-lib to be 
initialized three times:

racket@> (enter! "extentions-lib.rkt")
"intializing test-lib.rkt module"
"intializing test-lib.rkt module"
"intializing test-lib.rkt module"


extension-lib.rkt:

#lang racket

  (require "test-lib.rkt")
  (require "arith-lib.rkt")
  (require (for-syntax "arith-lib.rkt"))

arith-lib.rkt: 

#lang racket
  (require "test-lib.rkt")


test-lib.rkt:

#lang racket
"intializing test-lib.rkt module"

How is it that test-lib.rkt is initialized three times?  I get two times, 
the 'for syntax' time and the regular time.

Going back and looking at the actual program, it does seem that the test 
list available for invocation at run time is the correct one, and the 
interspersed require for syntax inits did not share state.   However, the 
transcript is messed up, because the messages from all the inits are dumped 
in, independent of the phase of the initialization.  I'm going to need a 
'this is not phase zero'  flag and conditional behavior for the test code. 
 How is that done?

Also interesting apparently phase 1 is not a distinct phase that occurs 
before phase 0, but rather it is jumping back and fourth.  Is that correct?


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/09063244-078b-468c-ae76-856696eaae47%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to