chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] return a float from foreign function


From: John Cowan
Subject: Re: [Chicken-users] return a float from foreign function
Date: Mon, 28 Aug 2006 15:01:52 -0400
User-agent: Mutt/1.3.28i

Zbigniew scripsit:

> Did you change the return type of your function back to 'float'?

No, I apparently just failed to recompile.  Here's what I've got now:

$ cat callit.scm
#>
double baz(int i);
<#
(define baz (foreign-lambda float "baz" int))
(print baz)
(print (baz 42))

address@hidden /tmp
$ cat impl.c
#include <math.h>

double baz(int i)
{
       return (((double)i) / 15.2);
}

address@hidden /tmp
$ csc callit.scm impl.c
Info: resolving _C_temporary_stack by linking to __imp__C_temporary_stack 
(auto-import)
Info: resolving _C_stack_limit by linking to __imp__C_stack_limit (auto-import)
Info: resolving _C_fromspace_top by linking to __imp__C_fromspace_top 
(auto-import)
Info: resolving _C_fromspace_limit by linking to __imp__C_fromspace_limit 
(auto-import)
Info: resolving _C_timer_interrupt_counter by linking to 
__imp__C_timer_interrupt_counter (auto-import)

address@hidden /tmp
$ ./callit
#<procedure (baz a03)>
2.76315789473684

So it works.

-- 
John Cowan  address@hidden  http://ccil.org/~cowan
Female celebrity stalker, on a hot morning in Cairo:
"Imagine, Colonel Lawrence, ninety-two already!"
El Auruns's reply:  "Many happy returns of the day!"




reply via email to

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