IRC channel logs
2026-04-24.log
back to list of logs
<jj>i have a little guile library i'd like to make usable by other people. what are the best practices for 1) packaging and 2) documentation? <jcowan>The best practice for documentation is to write it! <daviid>jj: most of us use the autotool chain, and for the doc, we write using texinfo - you may look at some projects to get started ... and ask here for some help ... <JohnCowan>daviid: What purpose does autotools serve if you are writung in guile? <daviid>JohnCowan: it is the best tool to make a lib/app available to others, no matter what lang it's written in, imo anyway <shawnw>If writing a C program that embeds guile, or a C library meant to be loaded in guile, autotools are useful (Especially autoconf) <jcowan>Sure. But I would understand jj to mean a library written entirely in Guile. <jcowan>In which case there is nothing to configure. <jcowan>It's not like there are a bunch of slightly different variants of guile. <shawnw>Gotta figure out where to install files. <rlb>old: I was wrong (hadn't actually checked) --- it's not web*.test that's slowing down the tests (and acting as a long pole wrt parallelization), it's (at least) srfi-42.test, and it looks like it's really just the (erastosthenes 100000) call in there. <rlb>Without that srfi-42.test takes about half a second. With it, it takes 15. <rlb>Do we actually need to test a value that large? <rlb>(That one call is a good chunk of the entire "make check" run time when running in parallel.) <rlb>Also got a notable speedup by moving threads.test to the top --- I knew it had a number of notable sleeps in there, but didn't follow that to the obvious conclusion. Here, that and leaving out that one srfi-42.test call takes "make -j5 check" time from ~45s to 25. <old>I don't know what that test it hm <old>wrt to threads.test with sleep?? that sounds like fragile synchronization to me? <rlb>old: wrt threads.test, might well be that it could be improved/acellerated, but for now I'll ad a pending patch that moves threads.test near the top of TESTS. <rlb>And wrt srfi-42.test, unless that larger erastothenes call is really important to the test somehow, I think we should reduce or remove it. I haven't learned/used eager comprehensions yet, so no idea offhand, but I vaguely suspect the test just picked "a large value" incidentally. <rlb>...and if so, that's a waste of power/time as often as I've been running the suite lately ;) <jcowan>Something must be seriously wrong: the time complexity of the sieve is O(n log(log n)), which is just barely above linear. <jcowan>A modern CPU should just be tearing through it. <rlb>no idea; I barely looked at it. Just got suspicious when I saw the "large value" and so tried commenting it out. <old>rlb: Would need to check the test, but sounds like GC to me ? <rlb>dunno, but if that large value isn't actually relevant to "testing srfi-42", then we can also just reduce/remove it. <rlb>If someone already knows that, great. If not, then I suppose we'll have to delve. <dsmith>rlb, Guessing it's in there because the srfi has that as an example?