IRC channel logs

2021-02-12.log

back to list of logs

<rlb>Should a guile/scheme UUID implementation provide them as a record/class? What I have now is just a 128-bit int, but of course that doesn't allow you to distinguish it in any way.
<rlb>daviid: tested lokke against current bullseye (in a vm) and "make check" works fine with libltdl-dev 2.4.6-15
<rlb>(guile-3.0)
<daviid>rlb: hum, i use guile 2.2 but i don't think it should matter
<daviid>i didn't try make check, i tried make, just make
<daviid>which fails
<daviid>here make check fails, both g-golf and lokke
<daviid>with the same message ... the only diff with a 'normal' just bullseye distro is i added experimental repo in the source list and installed _only_ gtk-4 and dependencies
<daviid>rlb: do you still have the file '/usr/lib/x86_64-linux-gnu/libltdl.la' or not?
<daviid>rlb: could it be one of the autoconf, automake, autotoolsdev ... ?
<daviid>rlb: something is diff in between your bullseye 'vm' and bullseye 'regular' - on of the above, gcc* maybe ... don't know what, but somehting is diff, i wish i knew - have to leave ... sorry for the 'fasle positive report', tx for your help, if you have any idea of what could cause such a problem, ping me ...
***sneek_ is now known as sneek
<rlb>sneek: later tell daviid I can set it up and try with 2.2 tomorrow. Also, if you have access to vagrant, I can give you trivial steps to reproduce whatever I find. Oh, and if I forget, certainly feel free to ping me.
<sneek>Okay.
<chrislck>It's Friday \o/o\o/
<wingo>woo :)
<spk121>wingo: mini-cmp seems to work okay in Guile. Qualitatively, times to build, run make check, and run benchmarks seem ballpark the same AFAICT
<spk121>Probably should write some benchmarks that really exercise GMP
<spk121>*mini-gmp
<wingo>spk121: how does choosing between gmp and mini-gmp work?
<spk121>wingo: there's a 'use=minigmp' branch in git which adds an --enable-mini-gmp configure option. civodul and I have been playing with it a bit
<spk121>the autoconfigure could be better
<spk121>pro: one less dependency. con: possibly slower, more C code in tree
<chrislck>maybe wingo can convert gmp to scheme <wink>
<dsmith-work>Happy Friday, Guilers!!
<pkill9>what does guile offer over common lisp?
<dsmith-work>pkill9: Scheme
<dsmith-work>;^}
<leoprikler>rare lisp ;)
<dsmith-work>Hygenic macros!
<rlb>language tower? :)
<dsmith-work>Does not have restartable exceptions. :(
<ngz>Hello. I'm looking for an idiomatic way to write the following: (cond ((string? (foo ...)) (foo ...)) ((string? (bar ...)) (bar ...)) (else "")). Of course, I could let-bind (foo ...) and (bar ...) to avoid calling them twice, but I wonder if there's something more elegant (e.g., which doesn't require to evaluate (bar ...) if (foo ...) returns a string).
<RhodiumToad>you have a number of forms which you want to evaluate in sequence until one returns a string, then stop?
<ngz>Yes
<ngz>or return the empty string if none returns a string
<RhodiumToad>maybe something like (define (value-if-string v) (if (string? v) v #f)) then use (and (value-if-string (foo ...)) (value-if-string (bar ...)) "")
<RhodiumToad>er, or not and
<ngz>I see.
<ngz>That is better indeed. Thanks.
<RhodiumToad>you could of course hide it behind a syntax rule, but it seems clear enough without
<ngz>Besides, at the moment, I only need this once.
<wingo>moo
<RhodiumToad>oom
<spk121>omo
<rlb>daviid: just re-tested and tested 2.2 too. Here's what I did: https://paste.debian.net/hidden/ff084bd5/ You should be able to more or less exactly replicate in a similar throwaway vm if you have vagrant handy. So there at least, building and testing lokke works fine with libltdl -15 and no libltdl.la.
<brown121407>Is there something like ,@ but for a list created with `list'? I want to expand a list inside another one.
<rlb>brown121407: hmm, depending on what you need, apapend-map might be useful, or concatenate, or (apply append ...).
<brown121407>I was interested if I can translate something like this in a call to `list': `(a b ,@(if #t '(c d) '()) e f)
<rlb>(cons* 'a 'b (if ...))?
<rlb>oh, there's the e f
<brown121407>That gives me something a bit weird for what I need: (cons* 'a 'b (if #t '(c d) '()) 'e 'f) => (a b (c d) e . f) ... The result I want to achieve is (a b c d e f).
<rlb>Yeah, I think you might need to wrap it in an apply append or concatenate or...
<brown121407>I'll look into those ideas, thank you :)
<rlb>which is just fine for programmatic applications, but perhaps not if your goal is to keep it readable.
<rlb>i.e. for that quasiquote/splicing is likely preferable
<rlb>wrt append: (apply append '(a b) (if #t '(c d) '()) '((e f)))
<rlb>or whatever
<rlb>(Which is one way to implement splicing if you're trying to write a reader or macro expander that does splicing...)
<mwette>(define-syntax list/@ (syntax-rules (@) ((_ '()) '()) ((_ @ l r ...) (append l (list/@ r ...))) ((_ x r ...) (append x (list/@ r ...)))))
<mwette>probably much better to implement w/ cons
<RhodiumToad>what's the benefit over ` ?