IRC channel logs

2025-11-21.log

back to list of logs

<sneek>Welcome back dsmith :D
<dsmith>sneek, botsnack
<sneek>:)
<hwpplayer1>Is there a policy of release management for Guile ?
<hwpplayer1>Thanks
<hwpplayer1>I learned by the way
<rlb>hwpplayer1: depending on what you mean, generally semantic versioning, though guile's Z releases are actually Y or Z releases, and see also doc/release.org in the source tree, perhaps.
<hwpplayer1>Does it have a website documentation ?
<hwpplayer1>where to look the source ?
<rlb> https://codeberg.org/guile/guile/src/commit/c495fe9381ad6fcbc7c9f598d38dc0d5090942c3/doc/release.org
<hwpplayer1>Thanks
<hwpplayer1> https://www.wikihow.com/Become-a-Programmer From a perspective of computer scientist and programmer and who likes to invent or develop programming languages where to start to learn lisp/guile ?
<dsmith>sneek, htdp?
<sneek>From what I understand, htdp is How to Design Programs, http://www.htdp.org/
<dsmith>sneek, sicp?
<sneek>Last time I checked sicp is Structure and Interpretation of Computer Programs, http://mitpress.mit.edu/sicp/
<rlb>hwpplayer1: oh, btw, emacs 30.2 is in unstable/testing now :)
<dsmith>hwpplayer1, ^^ Two common texts for learning
<hwpplayer1>I see
<rlb>perhaps also https://docs.scheme.org/
<hwpplayer1>Last question for now : As I heard The BSD OS family is "designed" but "Linux" is "evolution"
<hwpplayer1>what action should I take before designing a "software suite"
<hwpplayer1>monolithic or less monolithic
<hwpplayer1>How to understand when to select something
<hwpplayer1>Maybe a degree between designed system and evolution and also monolithic and less monolithic
<hwpplayer1>rlb Emacs is the number one tool for me :)
<hwpplayer1>I graduated economics, I studied/study social sciences especially art of war and strategy classics. Maybe that counts for designing programs and also programming language
<hwpplayer1>using resources etc
<hwpplayer1>the game theory
<hwpplayer1>Thanks
<ArneBab>hwpplayer1: if you want to design a software system, you must first understand enough about its inner workings so you can judge the effects of different design decisions.
<hwpplayer1>do you please elaborate ?
<ArneBab>hwpplayer1: so I would first start small. Build something practical that touches the core of what you want to do.
<hwpplayer1>hardware and electronics ? does it count ?
<hwpplayer1>I read/write Emacs Lisp code
<hwpplayer1>not only Elisp
<hwpplayer1>Write small tools that makes my job
<hwpplayer1>do you mean that
<ArneBab>If you want to use Guile, build something with Guile.
<hwpplayer1>Sure I got it
<hwpplayer1>Then large codebase
<ArneBab>I don’t know what you want to create, so I don’t know what starting point would be best.
<hwpplayer1>right ?
<hwpplayer1>I also want to learn the language itself comprehensively and teach to people
<hwpplayer1>So I need to explore more
<hwpplayer1>I like to tell programming to my friends
<hwpplayer1>share knowledge
<ArneBab>For the second step, mind the second system effect: https://wiki.c2.com/?SecondSystemEffect
<hwpplayer1>I'm gonna read soon
<hwpplayer1>What is your branch in Guile ?
<hwpplayer1>console/terminall apps or extensions ?
<ArneBab>To teach other people get up to speed quickly, this could be useful: https://www.draketo.de/software/programming-scheme
<ArneBab>But not so much for an in-depth understanding; for that, sicp and the little schemer are better.
<hwpplayer1>okay
<hwpplayer1>Anything else ?
<ArneBab>I build smaller systems, because I only work on Guile as hobby: small online games, specific language extensions, experiments, interface to other systems.
<hwpplayer1>I know Assembly and C and higher level languages ( the idea and concept )
<hwpplayer1>I see
<hwpplayer1>nice ArneBab
<hwpplayer1>Thanks for your help
<ArneBab>There’s also https://misc.lassi.io/2022/map-of-r7rs-small.html and https://files.spritely.institute/papers/scheme-primer.html -- and for reading on the "read the docs" page: https://www.draketo.de/software/programming-scheme#docs
<hwpplayer1>I see
<ArneBab>(the read the docs page lists links to read on)
<hwpplayer1>That is great to hear that there are good resources/docs
<hwpplayer1>I wrote/ai helped me to write a guile based website and terminal app
<hwpplayer1>just hello world but it was good to see that
<ArneBab>please try to actually write programs yourself: in Guile you can optimize your environment more than in any other language I know, and if you let AI template the code together, you’ll miss that advantage because you won’t actually learn how the language works.
<hwpplayer1>yes agree
<hwpplayer1>I just wanted to try
<hwpplayer1>I was sleepy :)
<ArneBab>anyway: good luck with your plans.
<hwpplayer1>Thanks
<hwpplayer1>likewise
<hwpplayer1>have a great day/night
<tohoyn>daviid: true, FiTohoynDBusServer1 is not a valid interface name. I changed it to fi.tohoyn.DBusServer1.
<sneek>tohoyn, you have 4 messages!
<sneek>tohoyn, daviid says: I found why it is not working. could you edit the (g-golf support struct) module and comment the line 107, using #;, so it becomes this - #;(string-prefix? "GDBus" g-name) - save, compile/install g-golf
<sneek>tohoyn, daviid says: then use this version of your test - https://paste.debian.net/1409664/ - given I saved it as d-bus-server-test.scm, chmod a+x d-bus-server-test.scm, you can run passing (if you wish) -d, as in ./d-bus-server-test.scm -d this will print g-golf core precious info as you are debugging ...
<sneek>tohoyn, daviid says: please note that I had to change your GDBusInterfaceInfo name, "FiTohoynDBusServer1" is not a valid name, not knowing what I am doing here, I picked the one in the doc, but for info, your name must pass the test, i.e (g-dbus-is-interface-name "org.freedesktop.DBus.Properties") => #t, but (g-dbus-is-interface-name "FiTohoynDBusServer1") => #f and that raises a Gio CRITICAL ...
<sneek>tohoyn, daviid says: I am sure why I tag GValue and Graphene struct as semi-opaque, but I can't remember why I also tagged DBus - even when I comment as suggested above, both the g-golf test-suite and all gi-marshalling tests still pass ... so I may patch 'for real' and release ...
<tohoyn>daviid: I tried to define methods in the interface info, see https://paste.debian.net/1409742/. The resulting error message can be found here: https://paste.debian.net/1409743/. The error message is caused by line 42 in the code. It seems that G-Golf does not handle array pointers as struct components correctly.
<tohoyn>daviid: G-Golf seems to have problems with array arguments containing structs, see https://paste.debian.net/1409776/.
<tohoyn>daviid: here is the error message I get: https://paste.debian.net/1409777/
<sam113101>how can I get help about a function
<identity>sam113101: «,describe function» at the repl
<identity>or look for it in the manual
<sam113101>scheme@(guile-user) [1]> ,describe stream-fold
<sam113101>#f
<CoderPrans>C-h f, is a default keybind that invokes "describle function" @sam113101
<identity>sam113101: it is described in the manual in (info "(guile) SRFI-41 Stream Library")
<sam113101>info: No menu item '(guile) SRFI-41 Stream Library' in node '(dir)Top'
<identity>sam113101: have you installed the guile manual?
<daviid>tohoyn: wrt the first problem, as a user you should be able to pass a list of lists ... on the C side, it expect an array of pointers to GDBusMethodInfo, which are structs containing structs, themselve containing structs ... none of the gi-marshalling tests ever tested those cases. I'll look into this, but it will take a while before I can come-up with a solution ...
<daviid>tohoyn: wrt the second, I'll look into it ... i'll let you know when i have a fix ...
<daviid>tohoyn: I am curious, why are you willing to use d-bus? what is your objective? Is there a 'similar' d-bus usage but written in C and working, so I could look at ...?
<daviid>d-bus is a nightmare, because it has its own GDBusArgInfo, GDBusAnnotationInfo ... complete total nightmare ...
<tohoyn>daviid: I just thought D-Bus support would be a good thing to have in Theme-D. Actually it is a bit difficult to figure out a good piloting project for it.
<daviid>but what is your objective? a concrete example ...
<tohoyn>daviid: Actually I don't know.
<tohoyn>daviid: But I think that interprocess communication should have important applications.
<tohoyn>daviid: BTW, I made some DBus code using make-c-struct. Do you want to see it?
<daviid>tohoyn: I'd need a very concrete example to be able to learn from ...
<daviid>a working code, that does something 'useful' would be nice yes
<daviid>and explain what the is code 'doing', in clear english, that would help
<tohoyn>daviid: I have some problems with pastezone right now
<daviid>mwette: I am wondering if it would not be more efficient, for g-golf users, to bind DBus using the ffi-helper and use that interface instead of GI?
<kestrelwx>There's an `ac-d-bus` library for Scheme.
<daviid>tohoyn: https://bpa.st/+scheme
<mwette>daviid, tohoyn: I created a demo for running dbus from guile, using ffi binding created from the ffi helper. Relevant files in nyacc are examples/system/dbu.scm, examples/ffi/dbus.ffi, examples/nyacc/lang/ffi-help/dbus-*.scm ; https://github.com/mwette/nyacc/tree/main/examples
<mwette>right, the ac-d-bus one too, I think that's used in guix
<tohoyn>daviid: https://bpa.st/RQHA
<tohoyn>mwette: AFAIK ac-d-bus does not implement synchronous method calls
<daviid> https://gitlab.com/weinholt/ac-d-bus/
<daviid>kestrelwx: tx
<tohoyn>daviid: The server defines a callback for DBus method MyMethod1
<tohoyn>daviid: receiving the method call is handled correctly, but sending a response does not work
<mwette>I have not run the dbus demo in a bit.
<daviid>tohoyn: but what 'is it doing'?
<daviid>supposed to do? I don't get it, you send what to what process, what does that process does with the msg?
<daviid>mwette: tx, I'll look at it when I can ...
<tohoyn>daviid: first the argument is extracted from the method call
<kestrelwx>I'm trying to make a screen recording tool, and I'm using G-Golf for D-Bus, ffi-helper for ffmpeg and I think I'll have to write bindings for Pipewire using the ffi. But I stalled for a while unfortunately.
<tohoyn>daviid: then the response should be constructed and sent
<kestrelwx>I guess a Guile interface over some thin bindings would be fine, but GDbus seems nice already.
<tohoyn>daviid: but the construction of the response argument does not work
<daviid>tohoyn: i just do not understand, what is the objective? do you send a msg to the desktop, to the kernel ...?
<daviid>what are you willing to do? in clear english ...
<mwette>I think this does replies: https://github.com/mwette/nyacc/blob/main/examples/nyacc/lang/ffi-help/dbus-03.scm
<tohoyn>daviid: the purpose of this server is just to test method calls (and later signals)
<daviid>tohoyn: so no real concrete need ... ok
<daviid>mwette: tx, I'll try to read this code later ...
<daviid>kestrelwx: what is your objective to use g-golf to use d-bus?
<tohoyn>kestrelwx: do you happen to know any important practical use of d-bus?
<kestrelwx>tohoyn: I mostly need to communicate with the XDG desktop portal.
<kestrelwx>daviid: Oh, just to get GDBus.
<mwette>I believe dbus is used for desktop app's to talk to hardware, e.g., power statistics. See /usr/share/dbus-1/interfaces.
<tohoyn>daviid: if you run the server you have to export procedure %write-c-struct in module (system foreign) in the Guile source code.
<rlb>fwiw, I also know that the "secret service" (yes that's what they call it) uses d-bus to communicate secrets between keyrings/apps and I think gnome/kde may use it.
<rlb>No idea how widely -- I was just poking around there a while ago...
<ieure>rlb, You're telling me that if Queen Elizabeth II used a Linux desktop, her passwords were communicated On Her Majesty's Secret Service?
<rlb>Oh, sorry, "secret storage", though I thought I'd heard it referred to via the other name :) https://www.freedesktop.org/wiki/Specifications/secret-storage-spec/
<kestrelwx>rlb: https://specifications.freedesktop.org/secret-service/latest/
<kestrelwx>I guess it's the same link...
<kestrelwx>Who would've known there are little details running around in our computers.
<rlb>Oh, ok.
<sam113101>what is ice-9?
<dsmith>sneek, ice-9?
<sneek>Its been said that ice-9 is "a nod to the fictional substance in Kurt Vonnegut's novel, Cat's Cradle, capable of acting as a seed crystal to crystallize the mass of software" <http://wingolog.org/archives/2009/01/07/a-brief-history-of-guile>
<dsmith>It was a cute name at the time when Guile was supposed to take over every scripting and config application.
<rlb>I also tried to improve things a bit in main, i.e. added an index entry for ice-9, and mention in the README, and a footnote in the info tour.
<rlb>"a mention"
<rlb>020d80c401a0a69f134ab56ca111339ac24f3ca0 fwiw