Welcome to the CHICKEN Scheme pasting service

This fails pasted by szablica on Sun Mar 3 16:10:34 2013

(import foreign)
(use srfi-4)

(foreign-declare
  "
  int sum(int n, int32_t* array) {
      int i;
      int result;

      for (i = 0; i < n; i++) {

          result += array[i];
      }

      return result;
  }")

(define c-sum (foreign-lambda int "sum" int (c-pointer int)))

(define some-numbers
  (s32vector 1 1 2 3 5 8 13))

(display (c-sum (s32vector-length some-numbers)
                (s32vector->blob some-numbers)))

with this error pasted by szablica on Sun Mar 3 16:11:17 2013

[karol@localhost 13-03-03 16:09 000/trash]> csc example.scm
[karol@localhost 13-03-03 16:10 000/trash]> ./example      

Error: bad argument type - not a pointer: #${0100000001000000020000000300000005000000080000000d000000}

	Call history:

	example.scm:21: s32vector	  
	example.scm:23: s32vector-length	  
	example.scm:24: s32vector->blob	  
	example.scm:23: c-sum	  	<--

When I substitute (c-pointer int) with scheme-pointer... pasted by szablica on Sun Mar 3 16:18:15 2013

[karol@localhost 13-03-03 16:15 000/trash]> csc example.scm
[karol@localhost 13-03-03 16:16 000/trash]> ./example      
-2097040967%                                                                                                                                                              [karol@localhost 13-03-03 16:16 000/trash]> ./example
1068841001%                                                                                                                                                               [karol@localhost 13-03-03 16:16 000/trash]> ./example
65953081%                                                                                                                                                                 [karol@localhost 13-03-03 16:16 000/trash]> ./example
-83068807%                                                                                                                                                                [karol@localhost 13-03-03 16:16 000/trash]> ./example
1040553097%                                                                                                                                                               [karol@localhost 13-03-03 16:16 000/trash]> ./example
-871956919%                                                                                                                                                               [karol@localhost 13-03-03 16:16 000/trash]> ./example
1166105417%                                                                                                                                                               [karol@localhost 13-03-03 16:16 000/trash]> ./example
858580569%                                                                                                                                                                [karol@localhost 13-03-03 16:16 000/trash]> ./example
288343449%                                                                                                                                                                [karol@localhost 13-03-03 16:16 000/trash]> ./example
1832255977%

*FIXED* added by szabli on Sun Mar 3 16:54:50 2013

(import foreign)
(use srfi-4)

(foreign-declare
  "
  int sum(int n, int32_t* array) {
      int i;
      int result = 0;

      for (i = 0; i < n; i++) {

          result += array[i];
      }

      return result;
  }")

(define c-sum (foreign-lambda int "sum" int scheme-pointer))

(define some-numbers
  (s32vector 1 1 2 3 5 8 13))

(display (c-sum (s32vector-length some-numbers)
                (s32vector->blob some-numbers)))

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which egg provides `take-right'?
Visually impaired? Let me spell it for you (wav file) download WAV