IRC channel logs
2025-11-25.log
back to list of logs
<old>sneek: later ask lechner get rid of glibc? Why? Also bad idea IMHO <flurando>The web module in Guile is so barebone, I just wanted to send a file, but it seems to assume super familiarity of http in users... ended up hardcoding content-type to applition/octet-stream and read-char/write-char loop. <flurando>Now trying to understand how to use guile-websocket, unfortunately nearly 0 document :( <dsmith>Hmm. I wonder if sendfile could be used there <flurando>No, sendfile requires a file port for output, but guile web module only gives string/bv port <dsmith>Ah. Yes. Now I remember. Just ran into that a few months ago. <flurando>gnu artanis being too monolithic, guile web being too barebone, why there isn't Flask(python)/Rails(ruby)/Rocket(rust) equivalent in Guile... <identity>flurando: as far as http/1.1 goes, http is pretty bare-bones too, i had no problems with it (and i guess what you did is what i would probably have done) <flurando>identity: http/1.1 is itself barebone, hmmm, got it <identity>if you just want to send a file over «HTTP» then you probably want something more abstract than a HTTP/1.1 client <identity>is it an HTTP (an eych tee tee pee) or a HTTP (a hypertext …)? <flurando>identity: What is the difference? Aren't these two both website hosting material? <identity>flurando: between versions? a can of worms is the difference. h1.1 and h2 and h3 are almost nothing alike on the nut-and-bolts level <identity>h2 is a binary protocol, h3 is doing UDP/QUIC instead of TCP, among many other differences <flurando>identity: So guile has no default support for h2 and h3, right? Well, bad news. <flurando>I don't even understand how low level SOCKET stuff is done on Guile, these being really newbie killers. You have to know very well about Linux on c level itself to use them. <identity>you also need to handle multiplexing over a single tcp stream with H2, which broadly means «you need async», is hard to get right and i doubt Guile had fibers when (web) was written, apart from fibers being out-of-tree <identity>flurando: do you actually need to deal with sockets when just sending a file? <identity>i would think you just get a port to write to <flurando>identity: No, I am ok with send char by char for local file transferring. It's just I need a modular web framework just like Rocket and Flask, for example (route "/index.html" (html '((p "Hello, World!)))). Actually this is not hard, I have made these wrapping already, using (htmlprag) and guile default libs. But things like server core, https, so on, still pulls my eye to the too monolithic to use <flurando>Now I am thinking about the implementation of api like (ws "/chat/in" (lambda (port) ...)) using guile-websocket, if possible <identity>flurando: i think there are some web libraries for Chicken and Chibi, never tried them though <flurando>identity: Heard before, but none of the web frameworks, from the sake of easiness, can pair with Flask/Rails/Rocket <flurando>Don't know if people here interested or not, but I am shocked when I saw Rust community showing off Leptos, which can let you use one source file to control both front-end and back-end seamlessly. It would be fantastic if there could be a solution combining the easiness of Flask/Rocket and the integration of Leptos. Guile seems to have the protential, which is why I stick to it. <dsmith>Hmm there is guile-websocket | lgpl3+ | websocket client and server. rfc 6455 <identity>«Leptos is a cutting-edge Rust web framework designed for building fast, reliable, web applications.» which does not tell me anything about the framework <flurando>Basically just wrapping effort toward Flask/Rocket's simplicity <identity>flurando: you should probably rename #{404}# to not-found <flurando>identity: The framework showcase is in a Youtube Video. I know Youtube is bad, but this is what trending language community doing. Leptos' main adventage is that you just write backend code and frontend code in similar manner, it would get compiled and run well. The only downsides are the hard to learn Rust and huge amount of blobs generated by the way. <identity>http status codes have names and referring to them by number is kind of a crock <identity>flurando: yeah i got that part from reading more into the readme, they could put «… by utilising the power of webassembly» or whatever into the tag line <flurando>identity: ok, I was just about to ask this. Would something like status-not-found be ok? I don't want a logically seperatable status respond to have same apperance (handler/procedure) with other code. Or I might have to put that in a seperate module... <flurando>identity: bookmarked, would check later, thanks <flurando>One amusing thing about Guile is that it has to wait for WASM support before language characteristics could land in browsers, actaully, this might take longer than fully modular community reimaged browser came out. <ArneBab_>sneek: later tell flurando: WASM support is there already. Spritely Hoot works -- but you’ll have to do quite a bit to integrate. <daviid>sneek later tell tohoyn I 'll patch scm->gi-array and gi-array->scm so they work fine with array of GVaraint myself, tx - I will kepp GBDus struct semi-opaque though, so you can write your own api to build those you need (and any other user) <jj>curious, does anyone know why #<<success> value: 1 rest: ()> wouldn't be matched by (match foo (($ success value rest) ...))? <lechner>Hi, I would like to make a feature in a module configurable. Should I use a fluid or a parameter? <sneek>Welcome back lechner, you have 1 message! <sneek>lechner, old says: get rid of glibc? Why? Also bad idea IMHO <lechner>old / same reason that golang and rust did it: bootstrapping