[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] Re: can you believe it? compile time vs. run time issues
[Chicken-users] Re: can you believe it? compile time vs. run time issues, again!
Sun, 29 May 2005 07:16:05 -0400
On 5/29/05, felix winkelmann <address@hidden> wrote:
> The syntax available for `eval' is deliberately restricted: usuall one doesn't
> need all the extra macro-expanders. But if you need eval with all the extra
> stuff, you might want to put the above code (minus def dynamic-record)
> into an extra-file, say bigeval.scm, and install it as an extension:
> chicken-setup bigeval
> From now on you can just say `(require-extension bigeval)' and you
> will have all the extra macros available at run-time.
Cool! But I would get the same effect if "match" and "more-macros" would
(declare (run-time-macros)), right? I still think this would be the natural
solution, since it is natural to think that `eval` knows about all standard
Chicken extensions, the same that are enabled in the interpreter by default,
unless I specify a r5rs environment. As you know, I really wish for
consistent behavior between interpreted code and compiled code.
> > $ csc -run-time-macros dynamic-record.scm
> > /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o(.text+0x18): In
> > function `_start':
> > ../sysdeps/i386/elf/start.S:98: undefined reference to `main'
> > collect2: ld returned 1 exit status
> > *** Shell command terminated with exit status 1: gcc -o dynamic-record
> > dynamic-record.o -lchicken -lsrfi-chicken -lstuffed-chicken
> > -L/usr/local/lib -Wl,-R/usr/local/lib -ldl -lpcre -lm -ldl -lpcre
> I didn't get this error. Did you add a unit declaration somewhere?
I changed the code according to you suggestions and I don't see any
error now. I am happy with that, who knows what I did before? ;)