IRC channel logs

2024-01-25.log

back to list of logs

<rlb>sneek: later tell civodul any idea offhand why the recent signal thread changes might cause the standalone tests to hang on test-guild-compile with the parallel test harness? May be repeatable for -j4 and greater here...
<sneek>Will do.
<rlb>(reverting them "fixes" it...)
<civodul>rlb: hi! re sigaction test, i have no idea why it would make tests hang
<civodul>can you see which process “make” is waiting for?
<lloda>civodul: wdyt about making SCM_DEBUG_TYPING_STRICTNESS default to 2. There's a comment saying this is inefficient, but i find that hard to believe
<civodul>lloda: yeah, i doubt it can be inefficient (maybe we can build with and without and compare the stripped binaries to see if it changes anything at all)
<civodul>making it the default when building Guile itself is prolly a good idea
<civodul>(i don’t think we can change it for Guile users, at least not in 3.0)
<sneek>chrislck: wb!
<lloda>ok. However i think this would have no impact in users, except in revealing bugs perhaps
<lloda>on users i mean
<lilyp>"Revealing bugs" is a big impact for those who consider them features :)
<lloda>i was forced to use STRICTNESS 2 for my own code bc c++20 rejects the volatile trick in STRICTNESS 1
<lloda>the bugs i found were all using SCM as int or pointer and viceversa
<lloda>mostly bc of using one of the scm_xxx_p as if they returned a C bool
<lloda>which is very dangerous
<civodul>it is
<sneek>wb dsmith!
<dsmith>sneek, botsnack
<sneek>:)
<dsmith>!uptime
<sneek>I've been serving for 2 months
<sneek>This system has been up 42 weeks, 4 days, 21 hours, 7 minutes
<old>Almost a year!
<old>That is some robust bot
<chrislck>sneek: botsnack
<sneek>:)
<chrislck>\o/
<graywolf>Hi :) I am trying to wrap my head around call-with-prompt, and I have troubles understanding the handler argument. I understand the wording in the docs, but only example has (lambda (k) k), which is not very helpful.
<graywolf>Would people have examples for what/how the handler is supposed to/can be used?
<lilyp>try (lambda (k) (sleep 5) (k)) – this should resume your computation after 5 seconds
<dthompson>graywolf: one simple example is stashing k in some variable for use later.
<dthompson>or yeah what lilyp just said
<lilyp>note that k can be picky about the number of args it takes
<dthompson>graywolf: example of storing k somewhere (replace 'yield' with 'abort-to-prompt' in your head) https://git.dthompson.us/chickadee/tree/chickadee/scripting.scm#n52
<graywolf>Oh, I see, thank you both :)
<cow_2001>i need to learn how to use the debugger. i'm being crushed by all the prints
<cow_2001>help help i'm being oppressed!
<cow_2001>in a better world people who make bad python references get electrocuted
<rlb>civodul: ok, thanks, and haven't had a chance to delve yet -- initial guess was something load-related, so I thought I'd see if that rang any bells. i.e. at -j4+ here, all the (4) cores are more likely to be busy, etc.
<old>is there a planned release soon for 3.10?
<civodul>we should do that, but i don’t think there’s a plan
<old>okay
<old>I'm saying this because I have a patch waiting since October 2022 and hope that it will make it in the next version ^^
<civodul>ouch
<civodul>it’s in the bug tracker?
<old>not sure
<old>I posted it on bug-guile@gnu.org
<civodul>great
<civodul>this: https://issues.guix.gnu.org/61058 ?
<old>hmm I had this in mind: https://lists.gnu.org/archive/html/bug-guile/2022-10/msg00020.html
<old>but they seem the same I think
<old>Just a different approach
<old>but yeah typically a deadlock on join-thread
<civodul>both are by you, right? :-)
<old>yes, I think I got confused wheter I need to open a bug or post a patch on the ML
<civodul>i’m happy to apply https://issues.guix.gnu.org/61058
<old>or maybe I though that the nobody was reading the mailing list so I made a bug report in 2023 :-p
<civodul>heh
<civodul>a test case would be nice
<civodul>but maybe tricky?
<old>entirely possible I can do it
<old>but I think it would need to be protected by dynamic-wind
<old>wait-condition-variable will execute async marks when timeout IIRC
<old>it is possible to throw in the async procedure, thus by-passing the unlock of the mutex
<old>hmm not true. only on EINTR
<old>so that's fine
<civodul>yeah, nothing can throw in ‘lp’ as i see it
<old>how would one test this however? I guess the current behavior that is observed should not happen anymore
<civodul>right
<civodul>you write a test that reproduces the bug
<civodul>i guess it’s enough to do (join-thread t 0) followed by (join-thread t)
<civodul>right now the second call just hangs forever, right?
<old>hmm no that's fine
<old>(let ((thread (begin-thread (pause)))) (join-thread thread 1) (join-thread thread)) => 'misc-error "lock-mutex"
<old>so that's very simple in fact
<old>but you do want two timeout to avoid the hang for ever
<old>civodul: I'm going to make a v2 with the test in it
<civodul>👍
<old>hmm how does one handle the case of Fedora with "guile3.0" in scripts?
<old>what a pain is this distro ..
<civodul>ah, well
<old>civodul: sent!
<old>eeh I just saw that there's a mixture of space and tab for indentation in the file. The patch does not look clean because of that
<civodul>ACTION looks
<civodul>old: pushed!
<civodul>we made progress tonight
<ieugen>hi, are there any up to date GUI libs for guile? I would like to try my hand in making a NetworkManager plugin
<ieugen>I saw https://github.com/spk121/guile-gi - does not seem that up to date, and I might require gtk4
<ieugen>hm I will probably need a dbus library as well
<old>civodul: thank you!!
<old>civodul: now I was wondering, when's fiber going to be core guile? :-p