<taoqy>Hi. I want to learn guile more. I try to use gdb to step it, but guile was linked with shared lib. Could someone give me some tips. <janneke>taoqy: we can give tips if you tell us what you see. <janneke>afaik, for single stepping it does not matter to gdb if libraries are shared or not <wingo>fresh guile master build on 5-year-old 4-core, 2 thread-per-core system took 54 minutes <wingo>if we are lucky with native code generation we can lower that to maybe 25/30 minutes. we'll see tho :P <wingo>would be nice to get those 10x speedups but for the bootstrap workload i think memory management is probably the bottleneck <taoqy>yesterday I compile guile (2.2-stable) that took about two hours in a `Dell XPS13` <janneke>taoqy: have a look at <build>/meta/guile or even <build>/meta/gdb-uninstalled-guile <taoqy>Do you mean using LD_LIBRARY_PATH? <taoqy>ld(1) says: -L Directories specified on the command line are searched before the default directories. <civodul>wingo: i often write (let ((x (open-foo))) (dynamic-wind (const #t) ... (lambda () (close-foo x)))) <civodul>but i realized this doesn't play well with delimited continuations and thus with fibers <civodul>i guess i should just use (catch #t ...) in this case? <civodul>also, we'd need a (fibers popen) :-) <davexunit>civodul: as a workaround you could do the open-pipe in a new fiber and write to a channel when it's done? <davexunit>or write to a channel for each bit of input you are reading, etc. <civodul>unless the fiber runs on a separate core <wingo>you can spawn a thread to run the pipe and use channels to communicate with the world of fibers <wingo>dunno if threads work in your system tho <wingo>channels can work between non-fibers and fibers <davexunit>civodul: oh does that module use some primitive thing that we can't suspend? <davexunit>something that suspendable ports doesn't cover? <davexunit>in that case you can ignore everything I suggested :( <civodul>the thing opens the pipe and then calls 'read', and 'read' is a problem <civodul>so i changed that to 'read-string', and then i call read once i have all the string <civodul>though i have a bug where that process does exit(0) without a word o_O <amz3>I just had a brillant idea! <amz3>but now... I have an even better idea... <amz3>I make simple program to share guile modules on gnunet! <amz3>well, it's will be just a wrapper around existing gnunet features and could be written in bash (mostly) but I need a new toy ;) <ArneBab_>amz3: if you can abstract out the interface and key-type, I’d love to adapt it to also work over Freenet <ArneBab_>amz3: also you can write everything in bash, the main question is whether that would be as much fun as with Guile <amz3>ArneBab_: what is key-type? <amz3>anyway, this is just diversion, I must be focused <ArneBab_>amz3: key type is the identifier you use to reference something online <ArneBab_>in Freenet you have something like USK@<long-key>/<name>/<version>/path/to/file <daviid>ACTION thinks IPFS is the future <amz3>I am not sure what's the difference between gnunet and ipfs <ArneBab_>daviid: ipfs does not provide a friend-to-friend connection mode <ArneBab_>(which doesn’t make it bad, it just does not hit my usecase: I want to be able to communicate with anonymous people) <daviid>that surprises me, but i confess I did not study much about it, I did read a bit though <daviid>anyway, i have to focus too :), sorry for the noise <ArneBab_>ipfs has the support tooling (cli tools, PR, talks, videos and such), but not the anonymizing and censorship resistant tech. <daviid>ArneBab_: really, so no tor connection then? <ArneBab_>daviid: connecting over Tor is not the same as being anonymous. There are a wealth of timing attacks available against anyone using tor. ***spk121_ is now known as spk121