Re: Where is the backtrace?

2014-01-03 Thread Ian Price
Panicz Maciej Godek writes: >> (define (f) (define (g) (define (h) ((lambda x (cdr x (h)) (g)) >> (f) > :13:0: In procedure # input>:13:0 x>: > :13:0: In procedure cdr: Wrong type argument in position > 1 (expecting pair): () > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to c

Re: Where is the backtrace?

2014-01-03 Thread Panicz Maciej Godek
2014/1/3 Ian Price : [...] >> Why isn't the information about the subsequent procedures tracked? Do >> they all get inlined? > > scheme@(guile-user)> ,optimize (define (f) (define (g) (define (h) ((lambda x > (cdr x (h)) (g)) > $2 = (define (f) (cdr '())) > > So, yes. > > Though not relevant t

Re: Where is the backtrace?

2014-01-03 Thread Ian Price
Panicz Maciej Godek writes: > I've checked this with other implementations. Racket, Gambit and Biwa > Scheme were equally uninformative. Kawa's backtrace was a nightmare to > me, but perhaps someone with more knowledge would be able to infer the > actual location of the error. Actually, the only

Re: Where is the backtrace?

2014-01-03 Thread Mark H Weaver
Panicz Maciej Godek writes: > I've checked this with other implementations. Racket, Gambit and Biwa > Scheme were equally uninformative. Kawa's backtrace was a nightmare to > me, but perhaps someone with more knowledge would be able to infer the > actual location of the error. Actually, the only

libguile thread safety

2014-01-03 Thread Chris Vine
Hi, I am having problems using libguile in a multi-threaded environment, which boils down to the following small test case, which fails with a segmentation fault with guile-2.0.9: #include #include void *guile_wrapper (void *data) { scm_c_eval_string ("(display \"Hello\n\")"); return NULL;

Re: libguile thread safety

2014-01-03 Thread Panicz Maciej Godek
Hi, I have never used the pthread library directly, but would it be possible for your program to use scm_spawn_thread instead? (according to the manual, it starts a new thread in guile mode, but I guess it needs to be run in guile mode as well)

Re: libguile thread safety

2014-01-03 Thread Chris Vine
On Sat, 4 Jan 2014 01:08:12 +0100 Panicz Maciej Godek wrote: > Hi, > I have never used the pthread library directly, but would it be > possible for your program to use scm_spawn_thread instead? (according > to the manual, it starts a new thread in guile mode, but I guess it > needs to be run in gu

Re: libguile thread safety

2014-01-03 Thread Panicz Maciej Godek
The code looks fine to me. It seems that there's a bug in guile -- when I insert one second sleep between the two invocations of pthread_create, everything works fine. However, when I go down with the sleep time below ~5 microseconds, things are getting weird. The good news is that the problem

Re: libguile thread safety

2014-01-03 Thread Panicz Maciej Godek
I concluded that this might be a solution. I tested it with 2.0.5 from ubuntu repository. I had to add GC_allow_register_threads (and link against gc, accordingly), because otherwise the program aborted with the message "Threads explicit registering is not previously enabled" whenever it attempted

Re: libguile thread safety

2014-01-03 Thread Mark H Weaver
Chris Vine writes: > I am having problems using libguile in a multi-threaded environment, > which boils down to the following small test case, which fails with a > segmentation fault with guile-2.0.9: I've recently noticed that the module loading process in Guile is not thread safe. I hope to fi