Welcome to the CHICKEN Scheme pasting service

FFI difference between u8vector and c-string added by semarie on Mon Oct 1 15:00:36 2018

(module test *

(import scheme
	srfi-4
	(chicken foreign))

(define strerror1
  (let ((NL_TEXTMAX (foreign-value "NL_TEXTMAX" int))
	(strerror_r (foreign-lambda int "strerror_r" int u8vector size_t))
	)
    (lambda (errnum)
      (let* ((buf (make-u8vector NL_TEXTMAX 0))
	     (ret (strerror_r errnum buf NL_TEXTMAX)))
	(if (zero? ret)
	    buf
	    (string-append "error " (number->string errnum)))))))

(define strerror2
  (let ((NL_TEXTMAX (foreign-value "NL_TEXTMAX" int))
	(strerror_r (foreign-lambda int "strerror_r" int c-string size_t))
	)
    (lambda (errnum)
      (let* ((buf (make-string NL_TEXTMAX))
	     (ret (strerror_r errnum buf NL_TEXTMAX)))
	(if (zero? ret)
	    buf
	    (string-append "error " (number->string errnum)))))))
)

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
What's the Makefile target to generate the bootstrap compiler of CHICKEN?
Visually impaired? Let me spell it for you (wav file) download WAV