IRC channel logs

2018-06-22.log

back to list of logs

<sahithi-ihtihas>0.
<civodul>Hello Guilers!
<nilg>How to write the output of some call in a file? (I tried to redirect the output of guile into a file but that doesn't work)
<wingo>call-with-output-file
<wingo>or with-output-to-file
<wingo>see the manual :)
<nilg>hmm, I read the manual but I was confused since the argument of the call should be the port number. Anyway, thanks!
<civodul>wingo: we seem to be using direct calls to pthread_create & co. instead of using GC_pthread_create & co.
<civodul>contrary to what the comment in bdw-gc.h suggests
<civodul>/* Don't #define pthread routines to their GC_pthread counterparts.
<civodul> Instead we will be careful inside Guile to use the GC_pthread
<civodul> routines. */
<civodul># define GC_NO_THREAD_REDIRECTS 1
<civodul>am i missing something?
<wingo>certainly the comment seems to not match what we are doing. i don't know that what we are doing is wrong though
<wingo>we have to support threads made by raw pthread_create
<wingo>because new threads can show up at any time
<wingo>e.g. not created by us
<wingo>afair we use the same mechanism in both cases
<wingo>and we avoid storing gc roots in pthread keys (i.e. if one is in a pthread key, it also exists elsewhere)
<wingo>iirc.
<civodul>hmm
<civodul>there's scm_i_current_thread in TLS, and there's a redundant pthread key
<civodul>TLS is supposed to be scanned by libgc anyway
<wingo>civodul: can you reproduce the problem with GC_MARKERS=1 ?
<wingo>it only happens in multi-threaded situations, right?
<civodul>wingo: only in multi-threaded situations (as in several Guile threads)
<wingo>ACTION nod
<civodul>i added printfs in thread_mark
<civodul>on runs where my code crashes, only the last two threads of the 'all_threads' lists were ever marked
<civodul>there are 8 threads on that list
<civodul>we use GC_register_my_thread, so we're fine
<civodul>(except maybe for TLS)
<manumanumanu>so, now I'm up and running on osx (got a new imac for free. Not my own choice. My wife won't let me install linux on it). I miss guix already.
<OrangeShark>happy friday!
<ArneBab>manumanumanu: install Guix on OSX?
<taylan>ArneBab: does that work? ^^
<ArneBab>I did not try it yet, but it’s a unix. I can install Guix on top of a Linux, why not on top of OSX?
<ArneBab>(the last time I ran OSX was in 2007, then I installed Linux on the box)
<taylan>hmm. OS X doesn't use ELF I think. for that and probably other reasons, you probably won't be able to use substitutes or the default package tree at all. would need to create a whole new package tree at least.
<vivien_>Hello ! I have a question about compilation in guile. If I have a module "loader" that loads an extension, guild is able to compile it. If I have a module "user" which uses "loader", then guild fails because it cannot load the extension (it should not try to load the extension, since it will only be available at run-time). How do I tell guild not to load the extension ?
<vivien_>For instance, in loader.scm I have : (define-module (loader)) (load-extension "this-does-not-exist" "init"), and in user.scm I have : (define-module (user)) (use-modules (loader))
<vivien_>I can : guild compile loader.scm, but not guild compile -L . user.scm
<taylan>vivien_: I don't really have experience with this but I think you want to put (load-extension ...) inside a procedure that can be called to load the module, like (define (load-foo) (load-extension ...))
<taylan>then of course call that in the appropriate place in user.scm
<vivien_>Thank you taylan, I've just checked and it works.