chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] Re: C_resize_stack


From: Brandon J. Van Every
Subject: [Chicken-users] Re: C_resize_stack
Date: Sun, 16 Jul 2006 21:57:19 -0700
User-agent: Thunderbird 1.5.0.4 (Windows/20060516)

Brandon J. Van Every wrote:
chicken.h contains:

#ifdef C_DEFAULT_TARGET_STACK_SIZE
# define C_resize_stack(n) C_do_resize_stack(C_DEFAULT_TARGET_STACK_SIZE)
#else
# define C_resize_stack(n)           C_do_resize_stack(n)
#endif

The only consumer is c-backend.scm:

       (when target-stack-size
           (gen #t "C_resize_stack(" target-stack-size ");") ) )

Can C_resize_stack be moved out of chicken.h and into c-backend.scm? Currently, in terms of the build, C_DEFAULT_TARGET_STACK_SIZE is circular. To determine it with nsample, we need to build libchicken, but libchicken includes chicken.h. My agenda is I'm trying to get all these various command line -D flags into .h files where they're easier to read and manage in the build. So I can't do #include "stack-size.h" in chicken.h because it would be circular and has to be determined later.

Hrm, it appears the code doesn't work as I first thought. There is no C section in c-backend.scm, so I suppose that means everyone uses C_resize_stack(n) in generated code all over the place. This also means there's no well-defined point of control for whether C_DEFAULT_TARGET_STACK_SIZE is used. If a compilation is passed a -D flag, it happens; if not, it doesn't. That makes me nervous. I'd rather see this #defined in a .h file somewhere. Somewhere other than chicken.h to avoid circularity.


Cheers,
Brandon Van Every





reply via email to

[Prev in Thread] Current Thread [Next in Thread]