IRC channel logs

2026-04-23.log

back to list of logs

<zip>I figured it didn't sound much worse than just locking a queue's head/tail anyway so
<zip>famous last words etc
<cow_2001>cwebber: where do i start ;_;
<cow_2001>there are already srfis for types
<cow_2001>i need to read them
<cow_2001>i have them in my bookmarks
<cow_2001> https://srfi.schemers.org/srfi-253/srfi-253.html
<cow_2001>duno how mypy-like it is
<cow_2001>"Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than un-checked code."
<cow_2001>"sorta maybe kinda"
<jboy>what I get for catching up on various group chats and irc channels before bed: I had a dream about adding a reticulum netlayer to goblins
<lavandula>help list
<lavandula>oops sorry that was supposed to be a private message to alis....
<janneke>returning null now if JSON.parse fails, and checking using external-null? on the scheme side
<janneke>ACTION wouldn't mind if json-parse/JSON.parse were offered by hoot ;)
<zip>actually am I right in remembering that HTTP3 doesn't actually give a shit where packets come from once it's got a connection identifier? Without the need to keep a TCP socket open I wonder if you could throw a request over to some random actor with a return path, connection ID and stream ID and have it talk back directly to just that stream
<zip>then again perhaps that'd reset the return path for the peer, so maybe a no-go.
<dthompson>janneke: if my json module for guile were to be merged, hoot would get a pure scheme json parser/serializer for free :)
<dthompson>zip: http3 runs on top of quick which is multiplexed udp
<dthompson>it's a *very* complicated stack
<dthompson>s/quick/quic/
<zip>I've had a look through the spec and yeah it's nasty
<dthompson>at FOSDEM I asked a Mozilla employee how hard it is to implement quic and they looked at me like I had two heads.
<dthompson>"why would you want to do that?"
<dthompson>"okay well if you want to then you need 10 engineers and 3 years"
<dthompson>:(
<n|Phreak>morning
<n|Phreak>really thinking to create a massive library for all DOM elements so I don't have to keep repeating steps .. has anyone else created a library for DOM elements yet ?
<n|Phreak>cause you only have to reference a dom element once
<jfred>jboy: Heh, I have actually thought about doing that... the reticulum license change a while back put a bit of a damper on that though, it's GPL-incompatible now and a bunch of guile ecosystem stuff I might want to use (though not goblins itself) is GPL
<jfred>*maybe* a netlayer implementation is arm's-length enough to be okay? but it's unclear if that's the case and I'd want to be really sure before putting in the effort
<jboy>Haha cool, jfred. I would think so, bit I'm also not sure.
<probie>Given that the reference implementation is written in Python, I feel like it'd be a pain to use with guile, even without licensing issues. If you implement the protocol yourself in guile, the license of the reference implementation doesn't affect you
<dthompson>n|Phreak: when you say "elements" do you mean for the DOM API? if so, no, there isn't a library with full bindings yet.
<dthompson>the reason is two-fold:
<dthompson>1) to efficiently make these bindings we need a WebIDL parser, kestrelwx is working on this part.
<dthompson>2) to keep binary size down, we need to tree-shake out all imports that are not used in the compiled program.
<n|Phreak>so you can't just create a libary with all the references in it per DOM element ?
<dthompson>what do you mean by references?
<dthompson>all the properties?
<n|Phreak>using the hoot ffi
<n|Phreak>sec
<dthompson>I mean, you *can* make this but it would be tedious to do by hand
<dthompson>which is why there are WebIDL specifications for all the web APIs
<n|Phreak>Like this https://paste.debian.net/hidden/b485e440
<dthompson>yes it would be nice to have modules for all this
<dthompson>the only reason we haven't do so yet is due to lack of tooling to make it pleasant to write and to use
<dthompson>done so*
<dthompson>I would very happily support you teaming up with kestrelwx to make this happen
<dthompson>we would still be missing some stuff on the compiler side but we'd have a great use case to guide the work
<n|Phreak>ACTION dthomposon that would be awesome , I just don't want to disappoint right now and I really just need to work on my scheme skills and knowledge 
<kestrelwx>dthompson: The parser is made by rgherdt, I think they are often online on #guile.
<dthompson>oops my bad! thanks for the correction
<dthompson>n|Phreak: no worries! just want to encourage collaboration :)
<n|Phreak>ACTION dthompson of course always appreciated. 
<dthompson>my ability to make large advancements in hoot is fairly limited right now so it would be fantastic if I could motivate contributions from others :)
<n|Phreak>I understand; I will do what I can to help this project
<dthompson>feel no pressure :)
<dthompson>thanks for sticking with it despite all the rough edges
<n|Phreak>Are you kidding its great , I'm learning a ton (Drinking from a hydrant) really getting to understand stuff and slowing down and practicing it.
<dthompson>that's great :)
<dthompson>glad you're getting something out of the experience
<dthompson>that's very encouraging to hear (read)
<dthompson>jfred, jboy: I don't know anything about reticulum so I'd be curious to know how ocapn might fit in with it
<dthompson>often we find that these alternative networking things have some unfortunate overlap with ocapn that makes a netlayer not as straightforward as it could be
<ArneBab_>jfred: that’s sad about reticulum -- first victim of the "ethical source" problems on track to repeat the mistakes of the non-commercial licenses :-( -- looks like the last GPL-compatible version is https://github.com/markqvist/Reticulum/commit/1851fda9e02f6591659b54db3ea286d557a7acbd
<ridley>I'm glad to see there is some interest in gradual typing for guile!
<cow_2001>why do they (lp (error ...)) in (define (check-arg pred val caller) (let lp ((val val)) (if (pred val) val (lp (error "Bad argument" val pred caller)))))?
<cow_2001>instead of just (error ...) in the alternate prong of "if"
<cow_2001>there are now many typecheckers for python
<cow_2001>i haven't touched python in a while
<lavandula>jfred: only the python implementation is using the restrictive license (no evil). The protocol itself was dedicated to the public domain in 2016.
<lavandula>i wouldn't want to use python as part of a networking stack anyways, so i don't particularly see the issue aside from a lack of alternative mature implementations
<identity>cow_2001: maybe to un-tail-call it? maybe it has an impact on the backtrace, or something
<cwebber>I love writing scheme so much
<dthompso`>it's the best
<n|Phreak>Looking into creating a webring using hoot and goblins
<n|Phreak>I think SOLID is way too complex for a javascript library
<n|Phreak>be nice to have a webring and your own space