IRC channel logs

2023-06-12.log

back to list of logs

<rlb>wingo: the other bug (airty) was because assembler.scm locally (re)defines write and I overlooked it :)
<sneek>Welcome back chrislck :)
<Kolev>daviid: OK, about to try what you suggested last night.
<daviid>Kolev: did it work?
<Kolev>daviid, cannot find `autogen.sh` anymore.
<daviid>Kolev: it is "cd <the guile-lib-source-path>; ./autogen.sh
<daviid>Kolev: but, if you cloned the repo, if you are using a tarball guile-lib, then only ./configure step is needed
<Kolev>daviid, error: https://paste.centos.org/view/6af085a4
<daviid>Kolev: it still only finds guile 2.0 - i suggest you try to get some help from fedora people, is there a fedora libera.chat channnel maybe ...
<Kolev>daviid, they just said to talk to Guile people.
<daviid>Kolev: hum, i see :):)
<daviid>Kolev, wha i can tell is, if you installed guile 3.0, and in a fresh terminal guile --version answers 3.0.7 [as you reported yesterday iirc], then the guile-lib configure steps should report it finds 3.0 ... if it only finds 2.0 still, something is wrong in your 'session settings'
<Kolev>daviid, `guile --version` answers 2.x.
<daviid>Kolev: ok, then you ask the fedora folks why is that
<Kolev>Guile 3.0 has to be explicitly called by `guile3.0`.
<Kolev>I'm having a hard time in #fedora. 😞️
<Kolev>Removed `guile`. Now the executable `guile3.0` exists in my path, but no `guile` executable exists in my path.
<daviid>Kolev: can you ask the fedora people why there is no guile-lib package in fedora, just curious - then you removed guile 2.0, but that didn't rename the fedora guile 3.0 scripts i guess, but, if you could remove 2.0, it means no fedora pkg depens on it, good knews, then you may go in the dir where those are installed, and symlink them [if you have sudo access]
<daviid>before you apply the above, it is important you confirm no other fedora pakg depends on guile 2.0
<Kolev>daviid, I symlinked /usr/bin/guile3.0 to /usr/bin/guile but `configure` still fails to see Guile.
<Kolev> https://paste.centos.org/view/7df2496c
<daviid>Kolev: you need to symlink the guild as well, any guile scripts 'there' ...
<daviid>Kolev: and then try in a fresh terminal first: guile --version
<Kolev>daviid, agh! Removing `guile` and keeping `guile30` removes `guild`!
<daviid>Kolev force a reinstall of the guile 3.0 package, that is abnormal [to says the least]
<Kolev>daviid, guile3.0 exists though.
<daviid>after you tremove guile 2.0, re sintall guile 3.0 and its dev package if any ...
<daviid>not familiar [at all] with fedora ...
<daviid>Kolev: you must make things work so both guile --version and guild --version work in a 'fresh terminal'
<daviid>then and only then try to configure guile-lib
<Kolev>New error: https://paste.centos.org/view/3a0dd63a
<daviid>Kolev: you have a 'corrupted' environment - configure: error: found development files for Guile 2.0, but /usr/bin/guile2 has effective version 3.0
<daviid>Kolev: it still find guile-2.0 dev files
<Kolev>daviid, I symlinked /bin/guile to /bin/guile3.0 to force guile3.0.
<daviid>Kolev: my assumptionis you did not purge both guile 2.0 and if any guile-dev 2.0 packages
<daviid>you need to do this before abythibg else
<Kolev>daviid, it sounds like Fedora forces Guile 2.x...
<Kolev>daviid, I remove `guile-devel` (which contains 2.x stuff) and now `configure` complains that there are no dev. packages installed.
<Kolev>Oh! `guile30-devel` exists!
<daviid>right i was gona suggest that
<Kolev>`configure` succeeds. Error persists. https://paste.centos.org/view/9becf222
<daviid>ok, now you go in the dir where the bin are installed and symlink ... guile, guild, guile-config ...
<daviid>i see we have guile, guild, guile-config, guile-snarf and guile-tools [which is a symlink to guild]
<daviid>and make sure you effectively purged the 2.0 version of those ...
<Kolev>OK, symlinked all of those. Same error.
<Kolev>`guile` has been removed, along with `guile-devel`.
<daviid>yeah, i see lines 39 and below, it still checks for guild2, guile-config2 and guile-tools2, but i have no idea why
<RhodiumToad>trouble with guile-lib? I was just looking at that earlier
<daviid>this is fedora problem really, just trying to help, but i am not the best to help ewith this - any fedora users here?
<RhodiumToad>ACTION not fedora user
<Kolev>Sorry. 😞️
<daviid>RhodiumToad: i very much doubt it is a guile-lib problem
<Kolev>Can someone spin up a Fedora container/VM and reproduce my issue? I have the steps written down.
<Kolev>Steps: https://paste.centos.org/view/ed4b4de0
<RhodiumToad>what's the configure output?
<Kolev>RhodiumToad, https://paste.centos.org/view/e25f4e4b
<RhodiumToad>this isn't fedora's fault.
<RhodiumToad>the configure in guile-lib is using some seriously deranged logic, and part of that is that the guile version checks are seriously wrong
<RhodiumToad>Kolev: what's the config.log ?
<Kolev>RhodiumToad, https://paste.centos.org/view/f606d9be
<RhodiumToad>GUILE='/usr/bin/guile2'
<RhodiumToad>this configure script is just trash
<Kolev>RhodiumToad, good to know. Wish I wasn't caught up into it. I just wanted to play with G-Golf.
<RhodiumToad>try GUILE=/usr/bin/guile ./configure ...
<RhodiumToad>(or whatever the path to your guile-3.0 binary is)
<Kolev>RhodiumToad, new results! https://paste.centos.org/view/09dd1911
<RhodiumToad>that might have worked?
<Kolev>RhodiumToad, but G-Golf's `configure` does not see `guile-lib`.
<daviid>Kolev: you need to install it ?
<Kolev>Oh, `sudo make install` on `guile-lib`...
<Kolev>Hm. Still the same.
<daviid>where did you install those files? i suggest you uninstall, and try GUILE=/usr/bin/guile ./configure --with-guile-site=yes; make; make install; then try g-golf again
<Kolev>I jsut did `sudo make install`.
<daviid>RhodiumToad: as for find guile's scripts, guile-lib uses guile.m4 macros
<daviid>Kolev: but where were those files were instlled must be known to guile ...
<Kolev>daviid, I have no clue what I'm doing. 🤦️
<daviid>ok, can you tell us where those files where installed? presumably in /usr/local/share... ?
<RhodiumToad>yes, it looks like there are two bugs: guile-lib's configure.ac, and the guile.m4 in guile itself
<RhodiumToad>actually no, the guile.m4 might actually be right
<RhodiumToad>it's this in guile-lib's configure.ac that really breaks it: GUILE_PROGS([2.0.12])
<RhodiumToad>that'll make it look for guile2, guile-2, guile2.0, guile-2.0, guile2.0.12, guile-2.0.12 and _no other version_
<Kolev>Current steps and error: https://paste.centos.org/view/8097d35b
<daviid>that is a guile.m4 acro, which checks that the installed guile version is at least >= 2.0.12
<RhodiumToad>no, that's not what it does
<Kolev>daviid, the script did not print to stdout the location of the installed files.
<daviid>then it is a guile.m4 macro
<Kolev>Or, I didn't see it.
<daviid>bug :) - that is what it should do
<RhodiumToad>GUILE_PROGS with a version specified looks for _that specific version_, not for any other
<Kolev>I feel stupid.
<RhodiumToad>if you don't specify a version, it'll use GUILE_EFFECTIVE_VERSION if set by a previous macro
<Kolev>I guess we got *somewhere*.
<RhodiumToad>oh, it'll also look for a plain "guile", but it checks that _last_
<daviid>RhodiumToad: that is not what it is supposed to do
<RhodiumToad>so with GUILE_PROGS([2.0.12]) it'll never find a guile 3.0 if there's a guile2 or guile-2 binary to be found
<daviid>anyway, RhodiumToad lets help Kolev 1st
<Kolev>I'm documenting this as best I can. I don't want to lose this information.
<daviid>RhodiumToad: then it should be updated, the guile.m4 macros should be upfdated, GUILE_PROGS _is_ there to check a minimal version ...
<daviid>not to impose a major version ... none sense, as we 1st call GUILE_PKG([3.0 2.2 2.0])
<RhodiumToad>Kolev: did a .pc file for guile-lib get installed?
<daviid>anyway
<Kolev>RhodiumToad, where would I look for that?
<RhodiumToad>er, I don't know where fedora puts them, the file name would be guile-lib-1.0.pc
<Kolev>RhodiumToad, wouldn't the script say where it's going?
<daviid>RhodiumToad: it's not fedora, as they installed manually, i beleice it is in $prefix/lib/pkgconfig/guile-lib-1.0.pc, and probably /usr/local/lib/pkgconfig/guile-lib-1.0.pc
<Kolev>Here is what I have in /usr/share/guile/.
<Kolev> https://share.csh.snikket.chat/upload/hAbE8YOfoVAXY9wLmXvDbi18/fb111278-7cb8-46d2-a80d-680dce2a58ce.png
<daviid>Kolev: here is my suggestion, in guile-lib: 'make uninstall; GUILE=/usr/bin/guile ./configure --with-guile-site=yes; make; sudo make install
<daviid>then try g-golf again
<RhodiumToad>that's not where the .pc file goes, it should be in $prefix/lib/pkgconfig as daviid says
<RhodiumToad>you might need --prefix=/usr
<Kolev>`sudo make uninstall`
<daviid>right
<daviid>then GUILE=/usr/bin/guile ./configure --with-guile-site=yes; make; sudo make install
<Kolev>Done.
<daviid>ok try in a terminal, this
<daviid>guile
<daviid>or just try the g-golf steps again, that might be easier
<daviid>in g-golf dir - ./autogen.sh; GUILE=/usr/bin/guile ./configure --with-guile-site=yes
<daviid>and see if it finds guile-lib
<Kolev>daviid, no.
<RhodiumToad>this error "Package 'guile-lib-1.0', required by 'virtual:world', not found" is specifically about not finding a .pc file
<daviid>ah, sorry then it will still need to add the path to /usr/local/lib/pkgconfig
<RhodiumToad>I thought /usr/local was generally not used on linux
<daviid>RhodiumToad: it is a default configure unless --prefix=...
<RhodiumToad>unfortunately I don't know what pkg-config wants to see because freebsd has its own version which is slightly different
<daviid>RhodiumToad: i dont know either
<daviid>Kolev: can you 1st check in /usr/local/lib/pkgconfig/ there is a file guile-lib-1.0.pc
<daviid>?
<Kolev>⬢[caleb@toolbox g-golf]$ ls /usr/local/lib/pkgconfig/
<Kolev>guile-lib-1.0.pc
<daviid>ok
<daviid>then we'll do the guile-lib steps again:
<daviid>sudo make uninstall;
<daviid> GUILE=/usr/bin/guile ./configure --prefix=/usr --with-guile-site=yes
<daviid>make
<daviid>sudo make install
<Kolev>Done.
<daviid>ok try g-golf using the same configure optuons
<daviid>GUILE=/usr/bin/guile ./configure --prefix=/usr --with-guile-site=yes
<daviid>before maybe ./autogen.sh
<Kolev>Oh, --prefix=/usr
<Kolev>OK, done.
<daviid>so g-golf finds guile-lib then?
<daviid>try make
<Kolev>Building.
<Kolev>What is `.go` file and doesn't that conflict with the Go programming language?
<daviid>great - try make check when done
<daviid>be right back ... few min
<Kolev>PASS
<RhodiumToad>.go = presumably something like 'guile object', it's compiled guile bytecode
<RhodiumToad>and I haven't checked, but I'd bet it predates widespread use of golang
<Kolev>I can run most examples, but not Peg Solitaire.
<Kolev>`cairo-devel` installed. Retrying.
<Kolev>Cool. I can at least play with widgets and script stuff.
<RhodiumToad>Kolev: another solution than using -prefix=/usr might have been to use PKG_CONFIG_PATH=/usr/local/lib/pkgconfig or something of the kind.
<RhodiumToad>but I don't know if that works with "real" pkg-config rather than the freebsd clone
<daviid>Kolev: you need a manually installed guile-cairo, i patched it recently, to run the simple-paintable.scm and animated-paintable.scm
<daviid>the peg-solitaire example should work, what's the problem?
<RhodiumToad>daviid: so what GUILE_PROGS actually does can be divided into two parts. One, find a guile binary. Two, find its version and check that it's >= the version specified.
<Kolev> https://share.csh.snikket.chat/upload/eSEgTf8g7ROyYAj9zWpoEyKa/0697ff07-4ac1-41c8-b982-a50e7b445b76.png
<RhodiumToad>the problem in this case is the first part, not the second
<rlb>wingo: good progress but just hit something that I'm not sure yet how widespread the underlying issue will be -- we support null chars (which I knew), and we have at least one test (fortunately) that uses one, but that stops some utf-8 functions dead in their tracks. So I'll need to review some of the work with that in mind and likely make adjustments to which calls we use.
<daviid>RhodiumToad: indeed, we should patch GUILE_PROGS, in the mean time, i added a GUILE3_PROGS in g-golf [sorry i forgot about this ...]
<RhodiumToad>why did you add that?
<rlb>...offhand, I suspect it's more likely that some of the utf-8 functions (than the previous utf-32 functions) will just stop on nulls.
<daviid>RhodiumToad: because if g-golf finds 3.0, in the GUILE_PKG([3.0 2.2 2.0]) step, it's not enough, it needs to be >= 3.0.7 ...
<RhodiumToad>ah I see
<daviid>RhodiumToad: we can discuss this, i'd be happy to patch GUILE_PROGS
<daviid>but now, i'd like to find why Kolev can't run the peg-solitaire example
<Kolev>I'm happy without Peg Solitaire, but we can go through it if you like.
<daviid>Kolev: does the css-basics.scm example work fine?
<Kolev>daviid, yes.
<daviid>Kolev: ok - the peg-solitaire.scm is essential for users, because it shows how to implement drag-and-drop
<daviid>Kolev: what is the gtk4 version you are using (just curious, this is normally nor the cause of the bug)
<Kolev>daviid, how do I find that out?
<daviid>the fedora package should tell you
<Kolev>Package gtk4-4.10.4-1.fc38.x86_64 is already installed.
<daviid>excellent
<daviid>Kolev: are you using emacs/geiser?
<Kolev>daviid, I'm using Emacs to look at the code, but don't know how to use Geiser, etc.
<daviid>ok, is there a fedora package for geiser?
<Kolev>daviid, doesn't look like it.
<Kolev>daviid, should I do my Guile stuff in a Debian container?
<daviid>ok, let's just try with emacs, can you, M-x shell
<daviid>cd
<Kolev>Done.
<daviid>cd <where you installed-g-golf>/examples/gtk-4
<daviid>then (load "peg-solitaire.scm")
<daviid>sorry, 1st run guile
<daviid>just enter guile
<daviid>then load ...
<Kolev>Success.
<daviid>no no, fedora is as good as ... just that i am nor familiar
<daviid>Kolev: you may later install geiser using the emacs package installer
<daviid>did it load the peg-solitaire example fine?
<Kolev>daviid, I got a Guile prompt back with no errors.
<daviid>ok, try
<daviid>,use (g-golf)
<daviid>gtk-css-provider-load-from-data
<daviid>then tell me what you get
<Kolev>$1 = #<<generic> gtk-css-provider-load-from-data (1)>
<daviid>ok, so it should work :)
<Kolev>Solitaire?
<daviid>try %css-data
<daviid>just to check the var is there
<daviid>(gi-import-by-name "Gtk" "init")
<daviid>(gtk-init)
<daviid>(make <gtk-css-provider>)
<daviid>let me know
<Kolev> https://share.csh.snikket.chat/upload/xTrxa02ZC0oLe7nuNpnaLuwx/c6732759-1838-4c37-89d9-3f62c4f168fc.png
<daviid>ok then
<daviid>(gtk-css-provider-load-from-data $4 %css-data)
<Kolev>Error.
<Kolev> https://share.csh.snikket.chat/upload/vkQqusZPlfiaZakYPOEhVnt9/8cd34350-71e0-4c3f-ac99-aedd5ae9b8b2.png
<daviid>ok, that confirms the problem
<daviid>Kolev: can you edit the peg-solitaire and remove the commented css lines, 245, 246 and the comment at the end of line 247, then remove line 248
<daviid>then load again and check %css-data is updated, then (make <gtk-css-provider>), (gtk-css-provider-load-from-data $xx %css-data) - with $xx being the results of the (make <gtk-css-provider>)
<daviid>i'll prepare a version without the css to see if it works for you
<rlb>OK, so perhaps a notable milestone -- all the tests are passing with a fully utf-8 internal stringbuf representation.
<daviid>rlb: fantastic!
<rlb>Though there's plenty left to do, i.e. we still convert to a temporary wide representation for a number of strings.c operations (to use the existing algorithms). But those can be converted incrementally and with less risk of obscure (even bootstrap level) failures.
<rlb>This was the bigger chunk that was more "all at once, and all the way down" :)
<rlb>i.e. the internal representation switch.
<rlb>And yeah, I'm some combination of happy and relieved, not sure more which :)
<Kolev>daviid, it acts like the commented lines are still there.
<Kolev>daviid, overall, I think I'm impressed by the examples. No editing XML files.
<daviid>Kolev: the next version of g-golf will fully support template ui files
<Kolev>daviid, so no getting around editing XML? OK.
<daviid>Kolev: can you drop this file somewhere, name it peg-solitaire-no-css.scm, then chmod a+x peg-solitaire-no-css.scm, then ./peg-solitaire-no-css.scm
<Kolev>I wish there was a cool, real-world app written in G-Golf.
<daviid>Kolev: you'll be able to prepare/edit sxml ui files as well
<daviid> https://paste.centos.org/view/9555ee3c
<daviid>Kolev: we'll ge tthere ... g-golf is still in alpha mode
<daviid>rlb: i think it is an amazing work, i am ipressed and happy we have you helping our maintainers with this rabbit whole utf8 immutable ... strings
<Kolev>bash: ./peg-solitaire-no-css.scm: cannot execute: required file not found
<daviid>rlb: you are a wizard
<daviid>Kolev: check the name, the exec flags of the file ... it should just work [at least find guile, g-golf ...
<rlb>Hah, well let's see if I actually get it done :)
<Kolev>daviid, -rwxr-xr-x. 1 caleb caleb 11486 Jun 11 22:59 peg-solitaire-no-css.scm
<daviid>Kolev: ok, just put the file next to the original and tri from there
<daviid>*try
<Kolev>daviid, that is where the file is located.
<daviid>ah - hum, strange, can you load it in the emacs guile session
<Kolev>Compiled.
<daviid>ok try (main "())
<Kolev>Hanging.
<daviid>hum, idea less
<daviid>you'll have to find and kill the guile process i a terminal
<daviid>or kill the emacs buffer and start again
<daviid>the problem is i can't reproduce the problem ...
<Kolev>C-c C-c (exit) RET
<daviid>ok, can ytou try again - as this is gona be a fresh sesion, worth trying, loading the new file
<daviid>that comment the css entries
<Kolev>`guile`
<daviid>Kolev: it would be nice if you can find why it does not launch the script
<Kolev>(load "peg-solitaire-no-css.scm")
<daviid>it works here
<Kolev>(main "())
<daviid>it's quote
<daviid>(main '())
<Kolev> https://share.csh.snikket.chat/upload/6W8gn_YsWeLLEbNfchrFC1ne/df390e8c-2e9c-4c11-bcf7-12a6d6428d71.png
<daviid>Kolev: you are entring a ", it is a quote
<daviid>kill and strat again ...
<daviid>it is (main '()), not (main "())
<Kolev>Oh, I saw " last time.
<Kolev>segfault
<daviid>wow - ok, can you try to fix the bash can not find the file, and try to make the ./peg-solitaire-no-css.scm - thois bash erro, i can only get it if a try an unknowed file, likw
<daviid>./sdfsfds => bash: ./sdfsfds: No such file or directory
<daviid>also, i'd like to do this, in emacs, a fresh session
<daviid>you load the 'original file
<daviid>then (gi-cache-ref 'function 'gtk-css-provider-load-from-data)
<daviid>(describe $xx) [ the $xx being the result ...]
<daviid>and paste, plaes use centos and select scheme as the langiuage
<Kolev>Sorry, I'm a little confused. I may be getting too tired.
<Kolev>My peg-solitaire.scm: https://paste.centos.org/view/c4fd0f2b
<Kolev>Good night. 🌃️
<daviid>ok good night
<daviid>Kolev: tomorrow, can you delete the comment line 245 and try again
<daviid>the line 245 should be
<daviid> border-radius: 3.5px;
<daviid>but good night, tomorrow ...
<RhodiumToad>daviid: so, GUILE_PROGS
<RhodiumToad>what it's doing is taking $_guile_required_version, which is the parameter (or taken from GUILE_EFFECTIVE_VERSION if not specified)
<RhodiumToad>splitting it up into x.y.z, then constructing a list guile-x guilex guile-x.y guilex.y guile-x.y.z guilex.y.z guile
<RhodiumToad>then for each of them in that order, it either takes the value of $GUILE, or it looks for that program name on $PATH
<RhodiumToad>and it takes the first one it finds, and only the first one
<RhodiumToad>but that's clearly not the right thing to do if the objective is "find any version >= N"
<RhodiumToad>and especially not if N is say 2.0.12 and you want to allow 2.2 or 3.0 versions
<daviid>RhodiumToad: right, and imo, it should be patched/fixed - this is the only macro we have [afaict] to check a minimal version is available, i used it in the past exactly for that, especially >= 2.0.7, then 2.0.14 ... then it didn't catch up nicely when 2.2, 3.0 ... but im it should be patched to work with what it finds if >= x.y.z ... if we really want a 'find the fixed x.y.z version and no others permitted, we should add another macro
<daviid>...
<daviid>RhodiumToad: can you run the peg-solitraire.scm file in your distro?
<RhodiumToad>er
<RhodiumToad>I haven't done a port for g-golf itself yet, let me see if I have an installation of it
<daviid>RhodiumToad: no pressure, just curious - i thought you had a working g-olf version 'ready'
<daviid>RhodiumToad: don't mean to interupt your other work ... i need to debug the fedora problem anyway ...
<daviid>i mean that appear on fedora, not syaing it is fedora
<daviid>which uses 4.10.x, i use 4.8.x here, we'll see
<daviid>RhodiumToad: what is the gtk4 version on freebsd?
<RhodiumToad>the one I have is 4.10.3
<RhodiumToad>which was the version in ports as of when I built it, probably a couple weeks back
<RhodiumToad>I get the same error that Kolev got.
<daviid>RhodiumToad: ah great, i'll try to run a 4.10.x version here then thanks!
<RhodiumToad>(I get a bunch of other warnings but they are unrelated, caused by dbus not being running and the display not being local and therefore not allowing DRI)
<daviid>fwiw, i have zero warnings here
<RhodiumToad> https://dpaste.org/WGqBT
<RhodiumToad>other examples such as hello-world give the same warnings but otherwise are fine
<RhodiumToad>this is in a VM, with DISPLAY= set to point to the host, which is why the dri/mesa stuff doesn't work
<RhodiumToad>oh, I had the search order for GUILE_PROGS wrong, it looks for -x.y.z then -x.y then -x, not the reverse
<RhodiumToad>I notice that guile-lib's unit tests seem to assume it can just invoke "guile" as a program, which doesn't really play well with the concept of multiple guile versions being installed
<daviid>RhodiumToad: could you paste, preferably using https://paste.centos.org selecting scheme - the result of (load "peg-solitaire.scm") then (gi-cache-ref 'function 'gtk-css-provider-load-from-data) then (describe $xx)
<daviid>RhodiumToad: oh does it, we should fix that
<RhodiumToad> https://paste.centos.org/view/c65d7682 <-- like that?
<daviid>RhodiumToad: yes, perfect, thanks
<daviid>RhodiumToad: what version of g-golf ?
<RhodiumToad>commit 5d7c6a5da116302cc0d8c4f1ab19a2bb2085ea10
<RhodiumToad>I can pull a later one if available
<RhodiumToad>looks like that's still the tip of your master branch
<daviid>could you checkout the devel and run the make danse? i think that is the problem
<daviid>then try the peg-solitaire.scm example again
<daviid>in that new version ofc
<RhodiumToad>same error.
<RhodiumToad>oh, hold on
<RhodiumToad>helps to actually reinstall it.
<RhodiumToad>right, did that, still same error.
<daviid>ok thanks for trying, with this new version, could you launch a session, load the peg-soliraire.scm file, then
<daviid>gtk-css-provider-load-from-data
<RhodiumToad>$1 = #<<generic> gtk-css-provider-load-from-data (1)>
<daviid>(describe $xx) and paste the result
<daviid>(describe $1)
<RhodiumToad> https://dpaste.org/ruoTd
<RhodiumToad>looks like it expects 3 args?
<daviid>ok that's the problem :)
<RhodiumToad>and it's only being given 2
<daviid>right, it should work with two, the last is the array length and i patched g-golf so users do not have to pass array langth args ...
<daviid>can you edit the example and add -1 to the line 264
<daviid>(gtk-css-provider-load-from-data provider %css-data -1)
<daviid>then try the example egain
<RhodiumToad>that seems to work
<daviid>RhodiumToad: perfect, many thanks for your help
<daviid>it seems to be a GI problem, if you look at your paste https://paste.centos.org/view/c65d7682
<daviid>here in 4.8.3, i get type-tag = array type-desc = (c -1 #f 1 uint8) for the second argument
<RhodiumToad>it's not quite as usable as one would hope, you're warping the mouse to a corner of the dragged object, and only allowing a drop if the pointer is inside the target, which is a bit confusing
<daviid>you get ype-tag = utf8 type-desc = utf8
<daviid>sorry i don't understand - but be aware that i currently do absolutely nothing wrt drag and drop 'way of drag and drop', it is all gtk4 behavior
<RhodiumToad>also if you drop a peg back in its original hole, it vanishes
<daviid>it works fine here
<RhodiumToad>what I mean is: as soon as you start dragging, the dragged object is positioned so that the pointer is at its top-left, even if you clicked in the middle of the object, so it jumps
<daviid>that last thing you said, here it does not vanish
<daviid>it works as expected
<RhodiumToad>oh? interesting
<daviid>i don't understand your 1st comment
<RhodiumToad>same happens (vanishing) for any illegal move
<daviid>the game is in the gtk4-demo, do you have it on freebsd?
<RhodiumToad>not installed, let me see if I can grab it
<daviid>here illigal move, the peg goes back in its original position
<RhodiumToad>gtk4-demo's version behaves the same here, i.e. illegal moves or dropping in the original position make it vanish
<daviid>ok, ouffeee!!! not a g-golf bug
<RhodiumToad>it goes back to its original position if you try and drop it somewhere that isn't a hole
<RhodiumToad>i.e. on the background or on top of another peg
<RhodiumToad>though the animation is wrong there, it slides to some incorrect point and then jumps to the right place
<RhodiumToad>or rather, it reappears at the right place immediately, then from the drop point, another copy of it slides to a wrong place and vanishes
<RhodiumToad>it does complain a lot about not being able to do GL (again, not a local display)
<daviid>RhodiumToad: that might be the all reason of your problems - i very very very much doubt it is a gtk-4 problem 'per se'
<RhodiumToad>can't test directly on the host at the moment unfortunately
<RhodiumToad>but nothing about being on a remote display actually stops it drawing things
<daviid>RhodiumToad: it's ok, but till you have zero warning, i don't trust the display results ...
<daviid>RhodiumToad: but feel free to join #gtk and report ...
<daviid>RhodiumToad: the GI team answered they changed the ABI interface for that method
<daviid>hence the bug in 4.10.x
<RhodiumToad>so, drag-end is being called with #t if the target is any hole, not just a legal hole
<daviid>are you refering to the scheme code? which also copies the C code :)
<RhodiumToad>for an illegal move, I'm seeing drop-accept return #t, drop-drop return #f, then drag-end called with #t
<RhodiumToad>scheme code
<RhodiumToad>I'm just inserting a lot of (pk)
<daviid>RhodiumToad: i was chating with the GI team .. the 1st thing is i would be able to reproduce here, then i can look at, but that's not the case, here every move none move, illigal move works as expected
<RhodiumToad>is that on 4.8 or 4.10?
<daviid>i don't think it matter, but 4.8.3
<RhodiumToad>the docs say that a "drop" signal is allowed to return false to refuse the drop. but it sounds like that doesn't work
<daviid>RhodiumToad: what is the move i can try here to try to reproduce your bug?
<daviid>RhodiumToad: and does that bugs in their demo as well?
<RhodiumToad>just move a peg to its own hole for example
<RhodiumToad>and yes, it's the same in their demo
<daviid>RhodiumToad: have to rest now, but many thANKS FOR YOUR HELP, BE BACK TOMORROW
<daviid>ok, then it might be a 4.10 interface change that even 'got them trpped'
<daviid>i suggest you join #gtk and explain/ask about that there
<daviid>sorry for the capital letters :), unintentional :):)
<wingo>good morning
<RhodiumToad>mornin'
<BitPuffin>o7
<RhodiumToad>mornin'
<RhodiumToad>another annoying packaging oddity: guile-cairo assumes it can use guile-snarf without allowing for a version number
<BitPuffin>So when y'all work on a project in guile and break it into multiple files. Do you a) add the project root directory to %load-path like (add-to-load-path (dirname (current-filename))), or do you b) use load on a bunch of files in a main file or c) something else?
<taw10>BitPuffin: I use 'guile -L' to add my root directory to the load path, inside a small wrapper script
<dsmith>sneek, botsnack
<sneek>:)
<sneek>dsmith: Greetings :)
<andydude>greetings
<RhodiumToad>daviid: ok, so the drag-drop issue is pretty definitively idebntified within the gdk x11 backend, not g-golf's fault in any way
<Kolev>daviid, https://paste.centos.org/view/4318f7bc
<RhodiumToad>Kolev: daviid and I figured out the issue, it's a change in the ABI between gtk 4.8 and 4.10
<RhodiumToad>you can fix it by changing (gtk-css-provider-load-from-data provider %css-data) to (gtk-css-provider-load-from-data provider %css-data -1)
<Kolev>RhodiumToad, Unbound variable: %css-data-1
<RhodiumToad>space before the -
<Kolev>RhodiumToad, segfault
<Kolev> https://paste.centos.org/view/e2a2c1be
<daviid>Kolev: can you find and install if it exists, the gtk4-demo fedora package, then run the demo and try their solitaire peg example
<daviid>RhodiumToad: right, thanks - i did see the last msg you've exchanged in #gtk, but before that i had an internet connection (general powerfailure here where i live) interruption ...
<daviid>RhodiumToad: wrt guile-cairo and guile-snarf, it is not a guile-cairo 'odity' :) - guile-cairo is a great package, very well written, and autotool chained as well [but it needs one more patch to 'restate' a way to either by default or using an option (my prefered way) install its lib in the GUILE_EXTENSION dir ... but remember, it was written about 20y ago ... together with guile-gnome ... guile 1.6 and 1.8 ... today we would not even
<daviid>use libguile anymore .. now, wrt to guile-snarf,
<daviid>GUILE_PROGS do not set it to use a version number postfix as it does for the other scripts, i think we should patch guile.m4; and then patch guile-cairo so it uses $(GUILE_SNARF) ... but with all this said, the real next guile-cairo must be rewritten, so w should also minimize our time fixing things their, especially wrt to the doc, my 2c
<daviid>*fixing things there
<festerdam>How do you generally debug your guile scheme code? I'm a bit confused with the interactive debug (in some frames not all local variables are displayed when I do ,locals) and I need to debug the program at a point in time before the crash occurs.
<daviid>RhodiumToad: i'll try to fix the guile-cairo lib install problem, but i won't work on the guile-snarf related problem, feel free to work on it and send patch(es) - i actually can't even build the doc anymore here, but to many things on my plate anyway ..
<daviid>Kolev: in debian the package is named gtk-4-examples and here it is 4.8.3 - i just wish to double check with the 'official' demo example
<Kolev>daviid: I'll check once my laptop is charged.
<daviid>Kolev: ok, no problem
<rgherdt>hey! Last week I was playing around with ecraven's r7rs-swank. Really cool, stuff like introspection just worked (at least for hash table, lists etc, expanding for GOOPS classes should be easy), and after some tweaks I got some sort of stack trace working. Here my current state: https://github.com/rgherdt/r7rs-swank/tree/improve-guile-support
<rgherdt>and now my question: I was trying to implement stack tracing. How can I programmatically generate a stack trace as generated by display-backtrace?
<rgherdt>Basically I'm trying to implement the function $condition-trace that sends frame information back to slime, my first experiments are here: https://github.com/rgherdt/r7rs-swank/blob/improve-guile-support/specific/guile.scm
<rgherdt>but the resulting frames still are not right
<dthompson> https://spritely.institute/news/hoot-wireworld-live-in-browser.html
<dthompson>first example of wasm assembled with guile running in a web browser!
<dthompson>today: the wasm-4 fantasary console. tomorrow: the world
<dthompson>fantasy* lol
<civodul>great stuff!
<Kolev>daviid, there is no `gtk4-demo`.
<Kolev>dthompson, so web apps can be written in Guile now? Far out!
<dthompson>Kolev: not yet, but this is one big milestone on the way there!
<dthompson>the wasm-4 fantasy console provides a very small runtime, which made it an easy target for testing out hoot's assembler and producing something that other people can actually see and interact with.
<dthompson>scaling up from here, there's getting nontrivial guile programs compiled to wasm and providing a means of interacting with browser APIs.
<Kolev>dthompson, I'd like to migrate my blog <https://bluehome.net/csh/> from Jekyll to Haunt, but the default blog configuration assumes that URIs are simply `/blog-post-slug` and not `/2023/06/12/blog-post-slug`.
<dthompson>Kolev: I haven't looked at the code in awhile but it should all be customizable
<dthompson>though maybe not ideally so for that use-case.
<dthompson>you can definitely specify a prefix
<dthompson>but that would the same thing for every post
<dthompson>ah you got me curious, I just opened the code real quick...
<dthompson>I think what should be done is that the #:prefix arg to 'blog' should be improved to either accept a string (current behavior) or a procedure that accepts a post and returns a prefix.
<Kolev>dthompson, I might not port to Haunt. I'd have to install it manually, because I don't have Guix.
<dthompson>the slug procedure in the site object might also be abused to add the necessary prefix.
<dthompson>Kolev: what distro do you use?
<Kolev>dthompson, Fedora.
<dthompson>haunt's dependencies are minimal and it uses a standard build system but I don't know of any distro besides guix that has picked it up yet :(
<Kolev>I'd like to install Guix inside a container, so I can use Guix for development tools without installing Guix on my bare root file system.
<dthompson>when I use non-guix distros I just install guix right onto it. everything is in /gnu/store and /var/guix so I don't find it intrusive.
<Kolev>dthompson, it's been a while since I've installed Guix on Fedora. The process is messy; the script doesn't do all the work.
<dthompson>it's been awhile since I've had to run that script. I used to have a work laptop with ubuntu but now I use the guix distro full time.
<Kolev>I like Guix, but it's rough around the edges.
<dthompson>I've been using it since 2013 so I guess I feel like everything is easy mode compared to what it used to be
<Kolev>dthompson, it sure has improved quite a bit, but the polish of Fedora always calls back to me. 😝️
<dthompson>yeah hard to beat the polish of a giant distro with corporate backing
<civodul>in addition, i'd say that polishing is not happening in the same areas
<civodul>(think flatpak)
<Kolev>Broke down and installed Guix on Fedora, for the Guile libs.
<Kolev>hello-world.scm: Error: http://paste.debian.net/1282797/