Hello,
I am wondering what is the best way to structure a project in Chicken.
I found no contiguous explanation of the different available concepts
and how to use them (declare, unit, uses, use, define-extension,
eval-when, ...).
Specifically, I want to be able to run my application in interpreter
and compile them without source code modification.
The best option I could figure out is this one (although I have no
clue if it is meant to be done this way):
I have a module bar:
;;; bar.scm
(define-extension bar)
(define (fac n)
(if (zero? n)
1
(* n (fac (- n 1))) ) )
I use bar in foo:
;;; foo.scm
(declare (uses bar))
(use bar)
(write (fac 10)) (newline)
And, of course there are some unit tests:
;;; bar-test.scm
(use bar unittests)
(assert-equals 3628800 (fac 10))
Now, I can run everything in the interpreter:
csi foo.scm
csi bar-test.scm
And I can compile it:
csc -c bar.scm
csc bar.o foo.scm
This works (at least for this small example). But I don't like the
doubled "use" of bar in foo. Is there a better way to do this?
Best regards
Daniel Sadilek
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users