Ticket #1337: easier.scm

File easier.scm, 750 bytes (added by Jaume Delclòs Coll, 7 years ago)

removed glib dependency

Line 
1; build with:
2; csc test.scm
3
4(use irregex)
5
6(define-external
7  (my_callback (c-pointer data)) void
8  ; on my machine, it dies at the 2nd attempt
9  (print "let's try and crash")
10  (work)
11  (print "done"))
12
13; just to keep the thing busy, this is what triggers the crash
14(define (work)
15  (do ([i 0 (+ i 1)]) ((< 150000 i) #t)
16    (irregex-search "( |_|-|#|\\.)[0 ]*14[^0-9]" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")))
17
18(foreign-declare
19  "
20void call_thing (void (*callback) (void* data)) {
21  callback(NULL);
22}
23  "
24  )
25
26(define foo (foreign-safe-lambda void "call_thing" c-pointer))
27
28(foo #$my_callback)
29(foo #$my_callback)
30(foo #$my_callback)
31(foo #$my_callback)