chicken-users
[Top][All Lists]
Advanced

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

[Chicken-users] Embedding Chicken in C


From: Ivan Raikov
Subject: [Chicken-users] Embedding Chicken in C
Date: Tue, 14 Nov 2006 10:45:58 -0500
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

Greetings,

      Using Chicken 2.5, I am trying to call Scheme code from a C
program:

        /* chicken-embed.c */
        #include <stdlib.h>
        #include <chicken.h>

        int chicken_run (void)
        {
             C_word x;
             CHICKEN_eval_string("(test-chicken-embed)", &x);
             return 0;
        }
                                   
        int main(int argc, char **argv)
        {
                C_word x;
                CHICKEN_run((void*)C_toplevel);
                                                                
                chicken_run();
                chicken_run();

                return 0;
        }
                        
        =====================
                                                            
        ;; test-chicken-embed.scm
        (define (test-chicken-embed)
           (print "test-chicken-embed")
           (return-to-host))


If I compile with the following command:

    csc -s -embedded test-chicken-embed.scm chicken-embed.c \ 
        -o test-chicken-embed 

Running `./test-chicken-embed' results in a segmentation fault.

If I compile with the following commands:

    csc -sc -embedded test-chicken-embed.scm                                    
               
    gcc -I$CHICKEN_DIR/include -c chicken-embed.c
    gcc -L$CHICKEN_DIR/lib -o chicken-embed chicken-embed.o \
        test-chicken-embed.o -lchicken

Running `./test-chicken-embed' does not print anything. 

Can anyone tell me what I'm doing wrong? Thanks for all and any help. 


    -Ivan







reply via email to

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