***scs is now known as Guest20543
<daviid>davexunit: great, is this part of chickadee? ***`micro_ is now known as Guest57360
***edcragg2 is now known as edcragg
***berndj-blackout is now known as berndj
***scs is now known as Guest17776
<apteryx>wingo: hey, I had somehow missed your message about now having the OK to push patches to guile-lib at my leisure ;-). Sounds good! I'll take the opportunity to merge the recent changes I proposed. Thank you. <daviid>apteryx: please don't, i am worji <daviid>i am working on those, in devel, and almost ready to release <daviid>but have a problem with the web pages ... <daviid>I would also ask you (or any one else) to send parches to guile-devel for review first - tx <apteryx>also OK to send any new patches I make for guile-lib to guile-devel for review first <apteryx>thank you for working on a new release! <daviid>apteryx: ok great, tx - I think it is important to give us (all) a 'window' for review(s), but we could agree on somehting like if no answers in say, 2 weeks (just like in/for guix iiuc), then ok to push ... <daviid>apteryx: fwiw, and as an example, i disagre with your patch-6 :), but didn't have time to write about this yet, because i first wanted to work on a release including all other patches, especially the long awaited htmlprag fixes ... <daviid>it seems savannah gnu/nongnu git servers are unaccessible at this time <apteryx>I'll let you work through it and comment on any email feedback you may have; just make sure I'm CC'd on your replies so that I don't miss them. ***scs is now known as Guest61540
<daviid>apteryx: I am the release prep final steps, as soon as this is done ... ***scs is now known as Guest67472
***apteryx is now known as Guest28195
***apteryx_ is now known as apteryx
***scs is now known as Guest59056
<janneke>so, i got 64bit mingw running yesterday on guile master :-) <janneke>not sure yet how correct it is, or even if it's what we want, how we want it <spk121>janneke: is it still that wip-mingw branch? <janneke>and rebased on your jit (wow!) -- didn't test that here just yet <janneke>yes sure, i merely said "it works"... <wingo>why wouldn't we want uintptr_t fixnums ? <janneke>also, i haven't attempted running the test suite yet <janneke>hmm, i must have had a wine hack/setup for wip-mingw-guile-2.2, thanks for listening <spk121>wingo: because GMP works on long? <wingo>does gmp work on long even on mingw64 ?? <wingo>dunno why they wouldn't define a word-sized digit type <janneke>i think the comment in numbers.h hints to that and it seems to be the case <wingo>but in guile #define SCM_T_SIGNED_BITS_MIN INTPTR_MIN <wingo>and #define SCM_T_SIGNED_BITS_MAX INTPTR_MAX <wingo>how about typedef intptr_t scm_t_inum on mingw64 <wingo>sorry, this is the denial,anger,acceptance thing <wingo>mingw64 grief is a process :P <janneke>why don't you just run wsl, if you must have an insecure backdoored, proprietary platform? <wingo>janneke: ok here's a bonkers idea, what about on mingw64 we require minigmp and define MINI_GMP_LIMB_TYPE <spk121>wingo: I was actually just about to go there, too <wingo>nice to commiserate with friends ;) <janneke>too bad we're too late for the potluck :) <spk121>so it would just be some configure stuff and then setting MINI_GMP_LIMB_TYPE to long long for __MINGW64__ I guess? <wingo>yeah i think so. could add '-DMINI_GMP_LIMB_TYPE=long long' in configure, that way source needs no changes <wingo>and we eliminate that source of potential bugs (different mini-gmp users defining or not that definition) <janneke>and then change instances of "long" to some typedef MINI_GMP_LIMB_TYPE some_gmp_type? <wingo>i guess you would change any long which is a GMP digit to mp_limb_t <wingo>i think you could just use intptr_t and somewhere we make a compile-time assert that the size of mp_limb_t is the same as the size of intptr_t <janneke>i was wondering about things like hash.c, e.g. unsigned long scm_ihashq (SCM obj, unsigned long n) ***scs is now known as Guest16313
<spk121>couldn't you recycle scm_t_inum instead of creating a new mp_limb_t type? Is there a meaningful difference between those terms <spk121>nevermind, I see where mp_limb_t lives <wingo>janneke: for scm_ihashq or anything that returns something that should be an inum, i guess scm_t_inum would not be a bad choice <wingo>note though that scm_ihashq could continue to return a long on mingw64 <wingo>so it probably makes sense to separate necessary changes from optimizations <spk121>OK, so it is just, (1) -DMINI_GMP_LIMB_TYPE=long long for mingw64 (2) make scm_t_inum and mp_limb_t the same type (3) assert that sizeof(void *) == sizeof(mp_limb_t) == sizeof(scm_t_inum) <wingo>(2) make scm_t_inum be scm_t_signed bits i guess <wingo>because with mini-gmp, users won't have access to mp_limb_t <spk121>what about #ifdef MINI_GMP_LIMB_TYPE / typedef MINI_GMP_LIMB_TYPE scm_t_inum; #else typedef long scm_t_inum. <spk121>oh right, numbers.h is a public header. <janneke>hmm, the new locale check fails for me ***scs is now known as Guest63903
<wingo>janneke: yeah me too, will look at it *janneke does another round of builing x86_64-w64-mingw32 <davexunit>daviid: to answer your question from yesterday: no it's not part of chickadee. chickadee is more low-level and doesn't use goops. <civodul>i suppose one can test with: guix build guile-next --with-branch=guile-next=master --target=x86_64-w64-mingw32 <davexunit>I'm doing some more experimental work with high-level "game engine" style abstractions in an unpublished project and I use goops there. <janneke>oh, that should be our MINI_GMP_LIMB_TYPE *janneke uses --keep-failed to heat-up their laptop a bit ***vup is now known as __vupbot
***__vupbot is now known as vup
***scs is now known as Guest93585
***daviid is now known as Guest14771
<janneke>spk121: hmm, --enable-jit segfaults for me, at least in combination with the new approach for x86_64-w64-mingw32 <spk121>janneke: pity. It definitely isn't well tested. I'm not even sure what a proper JIT test should look like <janneke>well, without JIT i get a familiar error with the new approach: unexpected syntax in form ((@ (ice-9 control) %) <spk121>janneke: did you rebuild your *.go now that they should be identical to the linx x64 *.go files? <spk121>(well, not so sure about identical, but, more similar?) <janneke>yeah, i use guix to rebuild everything *janneke goes to check .go equivalence ***scs is now known as Guest99582
<wingo>upstream lightening even has ci :) <rlb>...I'd pondered pushing here for some extra testing (even if I just did it for myself), fwiw: https://man.sr.ht/builds.sr.ht/compatibility.md If I got that working, I suppose we might be able to set up some kind of mirroring from savannah if that were feasible/desirable. <rlb>Though I haven't really tried the CI there yet much myself, so was just contemplating. <janneke>hmm, mini-gmp uses long and unsigned long in signatures, wondering if that's a problem <janneke>e.g.: int mpz_cmp_ui (const mpz_t, unsigned long); <manumanumanu>ahoy hoy! 3.0.6 looks like it is going to be a fine release whenever it is ready! <manumanumanu>and from what I can see there is some work done towards working under cygwin ***scs is now known as Guest99737
<davexunit>would be cool if my goops patch could be included in 3.0.6 :D ***pkill9_ is now known as pkill9
<davexunit>manumanumanu: fixes an issue with redefinable classes. it's the only bug I have open in the bug tracker ***scs is now known as Guest31785
***Guest14771 is now known as daviid
<daviid>davexunit: ah ok, i asked because i was interested to look at your solution/the code, whenever it becomes public, let me know ... <wingo>janneke: are there many of those cases? (using long to indicate an immediate int) <janneke>wingo: yes, it seems long is taken to be == MINI_GMP_LIMB_TYPE, if i understand the code correctly; of which i'm not entirely sure <manumanumanu>davexunit: thanks! goops is a powerful beast... I mostly use a home-rolled predicate-based system, which is faster for my use case (dispatching on a few elements, with a few methods). I lose specialisation, but gain that in lines of code <janneke>i tried replacing long and long int with xlong and then #define xlong long long for mingw, which did not make any difference wrt the "unexpected syntax in form ((@ (ice-9 control) %)" problem <janneke>so, i'm kinda lost with this new approach atm <janneke>the fixnum patch seems more attractive atm, as "it works" ;-) <wingo>civodul: i18.test:282 or so, testing "STRASSE" etc. are we failing to pass the de locale parameter to the comparator? *wingo fixed the i18n test probs that he introduced; "yay" <civodul>wingo: indeed, the Straße example lacks the 3rd arg to string-locale-ci=? <davexunit>context: <node> is the base class for all objects in a game. <meta-node> is <node>'s metaclass. an "asset" represents anything loaded from disk like an image or audio file. <janneke>hmm, long2big, ulong2big all need to do inum2big, unum2big i guess <janneke>and the mpz_set_si, the mpz_set_ui probably need to take similar custom types *janneke introduces mp_long and mp_ulong for mini-gmp ***scs is now known as Guest97525
***daviid` is now known as daviid
<daviid>davexunit: beautifully written, congrat! <daviid>davexunit: I think you should file a bug report with your patch for (compute-slots (class <redefinable-class>)), so the fix might make it to 3.0.6 - unless andy tells us it's not a bug but i don't think so