Re: crash on macOS with dlsym RTLD_LOCAL

2021-09-11 Thread Aleix Conchillo FlaquƩ
I did a little bit more research. The combination that actually fails is RTLD_LAZY | RTLD_GLOBAL (what guile uses). So, you can actually use: - RTLD_LAZY | RTLD_GLOBAL - RTLD_NOW | RTLD_GLOBAL - RTLD_NOW | RTLD_LOCAL I found the source code of dyld

[PATCH] foreign-library: fix RTLD_LAZY | RTLD_LOCAL crash on macOS

2021-09-11 Thread Aleix Conchillo FlaquƩ
* module/system/foreign-library.scm (load-foreign-library): On macOS calling `dlopen` with RTLD_LAZY | RTLD_LOCAL causes a crash when calling `dlsym`. There are a three working combinations: - Using RTLD_NOW | RTLD_LOCAL - Using RTLD_NOW | RTLD_GLOBAL - Using RTLD_LAZY | RTLD_GLOBAL For

Re: more advanced bytevector => supervectors

2021-09-11 Thread lloda
A problem is that Guile doesn't really provide a god set of fast rank 1 ops. None of them have strides!=1 for example (this is ok for regular vectors, but it hurts for general arrays), and some are missing start/end or you have to write wrappers yourself, like for the typed vectors (other than

Re: more advanced bytevector => supervectors

2021-09-11 Thread Stefan Israelsson Tampe
I did some test ands wingo's superb compiler is about equally fast for a hand made scheme loop as the automatic dispatch for getter and setter. It e.g. can copy from e.g. u8 to i16 in about 100 op's / second using native byte order. However compiling it in C lead to nasty 2 Go ops / second. So for