<gnousrick>hhm I see. I'll read more about that. thank you ! ***conjunctive_ is now known as conjunctive
***attila_lendvai_ is now known as attila_lendvai
<wingo>civodul: yeah this reproducible build thing is gnarly *civodul double-checks a psyntax patch re source properties <civodul>it reduces the scheme->tree-il step of gnu/packages/crates-io.scm from 30s to 20s, which is something <wingo>hah, the recorded inlinable exports are getting put through a hash table and back <wingo>leading to inconsistent ordering <wingo>civodul: i get reproducible builds now :) ***robin__ is now known as robin
<civodul>i guess something's wrong under the snow over there *wingo thinks using gitlab would be nice <civodul>it shaves a little bit on wall-clock time and on heap usage <wingo>civodul: ok for the optimization to parse alists to smobs but i hesitate about the new interface; srcprops are fundamentally not what we want i think; instead psyntax should arrange to not need them <wingo>already having switched to read-syntax we get rid of a large source of source properties and psyntax is really only using those properties internally <wingo>in the limit case psyntax could instead have a local lexically bound weak table that it uses if it really needs a side table <wingo>then it could use the sourcev format instead <wingo>but probably psyntax can be reworked to not need a side table at all <wingo>like would it be possible to replace decorate-source with (make-syntax datum empty-wrap #f sourcev) ? <civodul>wingo: agreed that source properties are not what we want <civodul>i think longer-term what you suggests is the way to go <civodul>the new interface is not something crucial here, just a way to reduce allocations in psyntax today <civodul>it'd be awesome if decorate-source could be written the way you show, but i guess it's not that simple? <wingo>it used to not be possible to write decorate-source in that way but since we switched to read-syntax we had to allow syntax objects that wrap lists <wingo>there are a couple other places where decorate-source is used that i didn't patch, but that patch should at least let us try and see <wingo>neat, i will just change the implementation of decorate-source then <civodul>yes, lemme push that other patch first <wingo>civodul: i updated that patch in place fwiw <avalenn>When #:key is used together with a rest argument, the keyword parameters in a call all remain in the rest list <avalenn>Is there any way to have the other behaviour (only non-declared keyword parameters in the rest list) ? <wingo>source properties are still used on the result of syntax->datum fwiw, and some tests appear to rely on that <wingo>avalenn: not automatically, you have to filter them out yourself. easy enough with a macro i guess <avalenn>easy enough with a function I guess, doing it now <avalenn>I should learn but never took the time. syntax-rules or syntax-case seems obscure strange beast to me <dsmith-work>avalenn: syntax-rules is actually pretty simple. Just a collection of pattern/replacements. <dsmith-work>Like 2 minutes. But it's timing out much faster now, under a second. <wingo>dsmith-work: yeah ssh access down too <wingo>that's a patch that passes all tests <sneek>I've been running for one month <sneek>This system has been up 27 weeks, 6 days, 47 minutes <daviid>avalenn: guix has a strip-keyword-arguments proc in (guix utils), and fwiw, g-golf as a split-keyword-args highly inspired by the guix proc <daviid>avalenn: note that both of the above assumes a list of kw 'only' <civodul>wingo: thanks for the psyntax changes \o/ <drakonis>is there any hope to have almost all of guile's procedures also be in guile or is it done in C because of performance? <dsmith-work>drakonis: Well, it's certainly moving in that direction. Seems like each major release has C code replaced by Scheme. <wingo>civodul: so i think the remaining thing is just NEWS. the reproducible builds issue is fixed i think and inlinable exports collection are punted to -O2, leaving -O1 optimized for speed-of-compilation <wingo>3.0.8 might be one of those that needs a quick followup tho <drakonis>dsmith-work: integer-expt got reverted back to C tho <dsmith-work>eval is now Scheme. Recently, the reader is now Scheme. <drakonis>the important stuff being in scheme is great. <civodul>what time frame do you have in mind? <civodul>i'd like to do some more compiler profiling <civodul>argh, set-source-properties! is back at the top of profiles <wingo>are you using "read" yourself? <civodul>so i guess it has to come from 'strip' <civodul>(supports-source-properties? #<syntax ...>) => #t, no? <wingo>i think it's because guix has a lot of quoted/quasiquoted things, right? <wingo>so this is when applying source properties to the different sub-components of a 'datum <wingo>i don't know whether that is a useful thing to do or not tho ;) <civodul>(what i mean is that set-source-properties! is higher than what i had achieved earlier today) <wingo>civodul: that is guile 3.0.7 ? <dsmith-work>guile-3.0.7.168-54bbe/ChangeLog: > $ /gnu/store/r2nr74rwhpqg16y1lyi6l0jn3lwx4yyz-guile-3.0.6/bin/guile <(echo '(') <dsmith-work>error: store file names embedded in the distribution <dsmith-work>Ahh. comes from the assert-no-store-file-names target <wingo>dsmith-work: what! in the changelog!!! <dsmith-work>wingo: For grins I added "sed -i 's|/gnu/store/|/GNU/STORE/|' $(distdir)/ChangeLog;" by hand to the gen-ChangeLog target and it was happy. Obviously not the right thing... <wingo>dsmith-work: dunno, sounds good to me <dsmith-work>Maybe replace with a known env var? Like ${GNU_STORE} or something? (I don't know guix) <dsmith-work>Or maybe add "--exclude ChangeLog" to the grep. (Is that only in gnu grep?) <wingo>there's actually a lot of stuff in 3.0.8 <gnousrick>hi, I don't understand something. I use a procedure to generate a string from a url (uri-scheme) but when I use it in a (string?=), guile doesn't like it. I think it's because this function can return #f too. Can I force the string conversation or it's better to use a lambda / cond, just to be sure it's a string ? I use guile 2.2.7 <wingo>doesn't require that arguments are strings <wingo>will finish NEWS tomorrow i guess <wingo>gnousrick: yeah, equal? on strings is the same as string=? <wingo>it's just that equal? takes more things <dsmith-work>What a delightful bug! The fix finds itself mentioned and fails the make. <civodul>wingo: you're right, i was looking at 3.0.7, silly me <dsmith-work>civodul: Did you see my comments about make dist checking for /gnu/store ? <dsmith-work>civodul: I suggest the "--exclude=ChangeLog" for grep fix <civodul>dsmith-work: ah yes, --exclude=ChangeLog is fine; the goal is to make sure we don't embed /gnu/store file names in shebangs