<fnstudio>hi, i don't seem to be able to use a `case` conditional as my key is not being matched with its value <fnstudio>and i can see it correctly contains a string, say "foobar" <RhodiumToad>two strings with the same characters which are not the same object are not eqv? <fnstudio>RhodiumToad: right, i think i hit this the other day as well <RhodiumToad>basically, for objects that are composed of many parts, only equal? compares the parts for equality <fnstudio>ok, fair enough, i got it now - thanks for putting me back on track, i thought i was going crazy <fnstudio>RhodiumToad: right, makes sense - hope my brain will eventually digest that :) <fnstudio>ok so it boils down to use `cond` when it comes to string-based keys <RhodiumToad>if these are constant strings, you might consider whether they would be better handled as symbols instead ***scs is now known as Guest54828
<RhodiumToad>but there are many cases where string->symbol and comparison of symbols may be more efficient than doing lots of equal? or string=? on strings <fnstudio>(i must admit i ended up using `cond`... lazy me) <fnstudio>(but i bookmarked string->symbol and match) <sneek>Welcome back tohoyn, you have 2 messages! <sneek>tohoyn, daviid says: this is a sign that in the 'context' of the execution that triggers these warnings, you are not following the recommendations given in the manual wrt merging generics - <apteryx>is there a way to expand the parameters of a list in-place; that is, not inside a quasiquote list? <apteryx>there's this thing in Guix called 'invoke'. It wants arg1 + arglist, then passes does with it (apply system* arg1 arglist). I'm trying to figure a way to do (invoke arg1 arg2 ... (expand-args %list-of-default-args)). <apteryx>alright, this works: (apply invoke "echo" "a" "b" '("c" "d")) <fnstudio>hi, what options do i have if i want to terminate my program in case something unexpected happen, as in "we only got here because of some corrupted input data" <fnstudio>something that one would normally handle by throwing an exception i guess <RhodiumToad>do you want to terminate regardless of any exception handler? <fnstudio>i'm happy for my program/script to simply terminate abruptly <fnstudio>RhodiumToad: yeah, a quick and dirty termination would be fine <RhodiumToad>in order of increasing dirtiness, maybe (exit), (primitive-exit), (primitive-_exit) ? <fnstudio>RhodiumToad: (exit) looks interesting... maybe i should have thought of it? :) <RhodiumToad>(quit) and (exit) are the same, and apparently unwind the scheme context first <RhodiumToad>whereas (primitive-exit) does not, and (primitive-_exit) does not even flush i/o or run atexit functions <lloda>if you never catch #t, then you can just throw a unique exception <RhodiumToad>in 3.x, (quit) will be caught by a with-exception-handler <RhodiumToad>so for example (let/ec ret (with-exception-handler (lambda (e) (ret 1)) (lambda () (quit))) will just return 1 and not actually quit <RhodiumToad>or (with-exception-handler (lambda (e) 1) (lambda () (quit)) #:unwind? #t) <euandreh>As I get my hands more and more dirty with Guile, I'm impressed by its documentation ***rekado_ is now known as rekado
<rekado>euandreh: I had the same experience, though towards the “weirder” modules the documentation becomes a little sparse. <euandreh>I actually liked the peg, but I was already familiar with peg parsing <euandreh>coming from CL, elisp and Clojure I'm enjoying Guile <spk121>hello guilers. Is there a way to set a hard limit to the maximum memory Guile can allocate? <davexunit>piggy backing on spk121's question: what's the best way to get general diagnostic information out of the guile runtime? <davexunit>memory usage and stuff like that. would be nice to pull this information into a time series chart to monitor application performance. <civodul>spk121: no, there's no way to do that (apart from the OS rlimits) <civodul>davexunit: yeah, it would be nice to have a heap profile <davexunit>agreed. I do a lot of application monitoring at $dayjob and that's pretty crucial stuff. <euandreh>autotools question: I have scripts/assert-shellcheck.sh that runs on the repo, but it shouldn't be included in 'make dist'. How can I run it with 'make check' but not on the final dist tarball? <euandreh>I expected that the 'check-local' target would not be included in the final dist <euandreh>what happens is that 'make distcheck' says doesn't exist, but that is desired <euandreh>I wanted a 'check-local-dev-only' target, or something similar <leoprikler>euandreh: you could try to use conditionals to simply not expand your check-local when called from make dist-check <leoprikler>for instance make it so you have to pass --development-mode to configure for the option to become visible ***scs is now known as Guest45799
<apteryx>hm, in which module is the compile procedure defined? <spk121>apteryx: the compile from 'guild compile'? It is actually in 'scripts. module/scripts/compile.scm in the tree. or /usr/share/guile/3.0/scripts/compile.scm in the install ***scs is now known as Guest76722