Sorry, I'd had sent this to chicken-users - but I'm kinda sure those
who could answer don't read that list ;-)

find attache two trivial module files foo.scm and bar.scm
to be compiled with "csc -c foo.scm bar.scm" .
Both declare (block) optimization.

Plus several foobarX.scm for X in 1-6 versions, which show various
attempts to make use of those exported foo and bar.  To be compiled
with "csc foo.o bar.o foobarX.scm -o foobar".

None of them let's me ever make use of those definitions compiled
with block optimization.

Am I doing something wrong?

Thanks a lot

/Jörg




......

(declare
 (unit foo)
 (block)
 (emit-import-library foo))

(module
 foo
 (foo)

 (import scheme chicken)

 (: foo (fixnum --> fixnum))
 (define (foo x) (* x 7))
	
)
(declare
 (unit bar)
 (block)
 (emit-import-library bar))

(module
 bar
 (bar)

 (import scheme chicken)

 (: bar (fixnum --> fixnum))
 (define (bar x) (+ x 0))
	
)
(declare (uses foo bar))

(import (prefix foo foo:))
(import (prefix bar bar:))

(define aFoo foo:foo)
(define aBar bar:bar)

(display (aFoo (aBar 6)))
(newline)
(declare (uses foo bar))

(import (prefix foo foo:))
(import (prefix bar bar:))

(define (aFoo x) (foo:foo x))
(define (aBar x) (bar:bar x))

(display (aFoo (aBar 6)))
(newline)
(declare (uses foo bar))

(import (prefix foo foo:))
(import (prefix bar bar:))


(display (foo:foo (bar:bar 6)))
(newline)
(declare (uses foo bar))

(import foo)
(import bar)


(display (foo (bar 6)))
(newline)
(declare (uses foo bar))

(module
 foobar
 (reexport foo bar))

(import foobar)

(display (foo (bar 6)))
(newline)
(declare (uses foo bar))

(module
 foobar
 (foo bar)
 (import scheme)
 (import (prefix foo foo:) (prefix bar bar:))

 (define (bar x) (bar:bar x))
 (define foo foo:foo))

(import foobar)

(display (foo (bar 6)))
(newline)
_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to