IRC channel logs
2026-08-29.log
back to list of logs
<apteryx>old: interesting. Though for Java, it seems to be designed to work that way (it takes the number of threads to use from the configured cpu affinity) <old>the main problem with cpu affinity is that you don't know which hardware you are going to run on <old>if you say, I want 2 cores, I will pin 0-1, well, that might not work in some cgroup to start with <old>and also, perhaps 0-1 are not on the same NUMA node or are not sharing L2 cache <old>you don't know until you run on the actual hardware and poll its topology <old>all of this can be avoid using a concurency abstraction and the scheduler will naturally put your threads on cores that are sibling <old>yet, it does not exist, yet :( <TheTaoOfSu>Anyone know what's up with the G-Golf manual being blank for the sections on "Building Applications" and "G-Golf on Mobile Devices"? <TheTaoOfSu>Maybe I can try Internet Archive, but that might be outdated info if it finds anything at all <daviid>TheTaoOfSu: I already told you, just rea and learn from the adwaiate-1-demo ... <daviid>the awaita-1-demo runs perfectly on a mobile <daviid>it actually has an 'adaptive preview mode',as i already told you ... <TheTaoOfSu>daviid: Yeah, I intend to go over it, I just try to start with the manual. That can sometimes be easier than trying to untangle the code, especially when there are parts of the manual relevant to what I want to do <daviid>the manual is not up-to-ate, it's actually years, like manynyears behind, just read an learn from the adwaita-1-emo ... <daviid>and read the upstream manual, the adw upstrream doc - g-golf is just a binding, what you need to know is (every) upstream doc <TheTaoOfSu>Oh dang, yeah, if it's that out of date, best to just dig into the examples, then <ArneBab>old: to add pain to injury for cpu affinity: I found out last week, that pinning my sleep-heavy fibers project to a single core at least halves the CPU load. <graywolf>If I have record foo and do something like (let* ((f (make-foo ...)) (a (foo-a f)) (b (foo-b f))) ...) is guile's compiler smart enough to elide the type check from the second accessor invocation, since the first already confirmed that fact? <old>graywolf: you can test in the REPL with ,x <graywolf>Ah, the thing I never know how to read the output of.. :/ <graywolf>Hm, since it just does (call-scm<-scm-scm , I assume it cannot actually elide anything, since it just calls the procedure <old>do you have a complete example I could try? <graywolf>(use-modules (rnrs records syntactic)) (define-record-type foo (fields a b)) (make-foo 1 2) <graywolf>,x (lambda _ (let ((a (foo-a $1)) (b (foo-b $1))) (list a b))) <old>,x (lambda (r) (let ((a (foo-a r)) (b (foo-b r))) (list a b))) <old>foo-a and foo-b are both procedures <old>wonder if srfi-9 is better in that respect <old>yeah I think srfi-9 yield better code <old>srfi-9 record emit inlinable predicate and getters/setters <old>I would say, the compiler has a much higher chance of optimizing these <graywolf>Thanks a lot. I guess I should default to srfi-9 instead of rnrs, even though the latter has nicer syntax :/ <graywolf>I wonder whether this is something fixable or just an inherent problem of the rnrs version. <old>not sure, would need to check <old>well take this with a grain of salt : <old>so yeah, srfi-9 seems to be very much better <old>I could dig into the code of rnrs records to see if I can improve things <graywolf>wow, that is much larger difference than I would expect <old>well it's micro-benchmark <old>like I said, with a grain of salt <old>the compiler can agressively optimize the loop here and just hoist the predicate out of the loop <old>but that is to proof that the rnrs records are kind of opaque to the compiler here <ieure>Hi, how can I rename core Guile bindings? ex. I want to define `and' within my own module, so I need to rename the Guile `and' to something else. <sneek>Welcome back ieure, you have 2 messages! <sneek>ieure, untrusem says: "untrusem, I think it should do that, if you launch as `guix shell -p .guix-extra-profile/verito/emacs -- emacs' " <- this doesn't work, it uses the emacs from my default profile. <sneek>ieure, untrusem says: nevermind its working as expected <ieure>I guess I need (define-module (whatever) #:pure #:use-module ((guile) #:hide (and)) #:use-module ((guile) #:prefix core/)) or similar. <rlb>ieure: yeah, I believe there's one or more formulations like that that'll work.