IRC channel logs

2024-11-20.log

back to list of logs

<jmes>Hey folks! I've been looking for a windowing/graphics system for Guile passively for a long time. Do any of you have a recommendation? I've considered g-golf but I'm not sure I want to commit to gtk...
<jmes>Maybe dthompson's guile-sdl2 🤔
<msavoritias>afaik these are your two options yeah. im in the same boat due to constraints of what I want to do GTK is probably not the correct option or I have not seen it been done.
<msavoritias>r7rs-large is apparently considering going for another toolkit or a way to paint on the screen i have never heard of that system tho
<dpk>uh what
<jmes>msavoritias: Thanks, hopefully they do try it! I'd be interested in that.
<msavoritias>same. although personally i would be much more interested in a functional reactive UI that can be manipulated in real time from the person using the app.
<msavoritias>just a dream of mine :P
<jmes>Trust me I'm with you. McCLIM isn't that, but it has some unconventional thoughts behind it that really open one's mind. I haven't finished dthompson's most recent post on FRP UIs, but from what I can tell it's the direction I'd want to go as well.
<jmes>Emacs doesn't quite fill it's role as operating system (yet). I think we'll need a lisp with proper graphics support (among other things) in order to build out a suite of desktop applications all customizable/extensible in the same language to achieve that dream of mine. Hopefully the language will be Guile :)
<msavoritias>yeah i have been pitched McCLIM before :P but the whole CL and the non functional one really threw me off tbh
<msavoritias>maybe we can write sdl in prescheme or something /s
<jmes>I never quite got into McCLIM but it was an eye-opener to learn about for me..
<dthompson>msavoritias: sdl in pre-scheme, now that's a cool idea! lol
<Zarutian_iPad>sneek, botsnack.
<sneek>:)
<dthompson>ACTION works on applicable structs for hoot
<dthompson>almost there...
<cwebber>yayyyy
<dpk>dthompson: tell me more about the implementation/interface some time if you can!
<dthompson>dpk: sure thing, should have a pull request soon.
<dthompson>the high level is: hoot record types can have a parent type. we define an <applicable-struct> type. users can create their own sub-types from this. the hoot runtime recognizes structs whose grandest parent type is <applicable-struct> and lets those be in operator position.
<dpk>but presumably you pay a cost on (at least some) procedure calls because it has to be checked whether they’re calls to a regular procedure or to an applicable struct?
<dpk>do applicable structs answer #t to procedure? ?
<dthompson>the runtime has a func called get-callee-code. it first checks if the object is a procedure and returns if so. if not, it checks for an applicable struct. failing that, it throws an exception.
<dpk>hmm, interesting
<dthompson>so the cost to check for an applicable struct is only paid when the object is *not* a procedure
<dpk>yeah
<dpk>nice!
<dthompson>yeah it's cool. I take no credit for the technique. wingo told me how to do it.
<dthompson>dpk: oh and yes applicable structs answer #t to procedure? in guile, so I'm doing the same here
<dpk>okay nice
<dthompson>which is what I'm finishing up now... it's easy to create cycles when adding functionality to low-level stuff like procedure?
<dpk>i didn’t know Guile has applicable structs either …
<dthompson>you wouldn't know because they are *entirely undocumented* and the way to make them is *gross*
<dthompson>hoot improves greatly upon this lol
<dpk>haha
<dpk>well, it’s good to know that it’s in Guile because that’s another R7RS Large question where i can say there’s one more implementation that already supports something – even if the API might need work :-)
<dthompson>wingo has been encouraging us to define better apis for things where possible so that hopefully guile itself could adopt them eventually
<dthompson>dpk: got a bit of clean up to do but here's the pr
<dthompson> https://gitlab.com/spritely/guile-hoot/-/merge_requests/293
<cwebber> https://social.coop/@cwebber/113516978181240578 sorry dthompson you are NOT allowed to discuss making a warioware clone on the forum anymore
<cwebber>YES
<cwebber>dthompson: YESSSSS applicable structs
<cwebber>so cool dthompson
<cwebber>I'm only scanning the code but I am excited about it
<cwebber>eeeeek I should get back to the website stuff
<dthompson>cwebber: how is warioware "off topic"!?!??? 😠
<cwebber>dthompson we have been OVER this don't make me lock the irc thread
<cwebber>lol
<cwebber>(if you're not familiar this is a reference to a famous dril tweet)
<cwebber>> "Is Wario A Libertarian" - the greatest thread in the history of forums, locked by a moderator after 12239 pages of heated debate,
<dpk>‘Christine Lemmer-Webber reacted with :dancer:’ ‘Christine Lemmer-Webber reacted with :construction_worker:’
<cwebber>why doesn't it just use 💃 👷
<cwebber>so weird
<cwebber>they're literally emoji
<dpk>well, you see the emoji, but it explains what they are with the codes when you hover over
<cwebber>gargron fix the emojos
<dpk>hmm, an applicable record type can only have one field? 🤔
<dpk>no, wait
<dpk>i see now
<dthompson>dpk: yeah just for others who are curious: <applicable-struct> has a single field but the record types that extend it can add more
<dthompson>cwebber: one of the greatest dril tweets for sure
<dpk>i should publish my SRFI on SRFI 9-style inheritance preserving encapsulation
<dpk>so much to do …
<dpk>okay, submitted
<dpk>hopefully Arthur will have it online soon
<dthompson>dpk: link it here when available :)
<dpk>will do!