IRC channel logs

2021-06-12.log

back to list of logs

<kitzman>decided to try out (web client). for a request, wouldn't it be sufficient to do (read-response-body request) ? the port is closed and there's an error getting thrown because of that
<kitzman>the port is open if i check it, but probably when i finish reading, it closes
<kitzman>oh #:streaming? ^^
<daviid>raghavgururajan, flatwhatson great! good work on guix gtk-4 pkg and good luck ... when you have a working pkg, you may try g-golf examples/gtk-4/*.scm and let me know
<rlb>manumanumanu: I've been away from that work for a bit, but assuming I get back to it, I think one of the key decisions we'll need to make is whether we "just want utf-8 strings" for more or less transparent interop, etc. That's what I have, though there are two physical "types" (underneath), ascii vs non-ascii. The former can be (and is) indexed directly (and may end up being pretty common for now), but of course both are utf-8. In
<rlb>that world, I suppose you might use switch to the "immutable text" srfi when you need "more".
<rlb>manumanumanu: and of course aside from "transparent/possibly-less-expensive" interop, we might also have better perf in some cases given likely optimized versions of utf-8-related code, the ability to just use bulk memcpy, etc. Dunno.
<rlb>(cache locality), but all of this is tradeoffs everywhere you look...
<emestee>is there a library for finite state machines I should use instead of reinventing the wheel?
<leoprikler>emestee p sure guile-fsm exists
<leoprikler>okay, maybe not, but there is this thing for guile 2.2: https://github.com/artyom-poptsov/guile-smc
<emestee>yes that's a little overkill for what I'm doing
<emestee>I havent found anything else
<emestee>I guess I'll implement it with ice-9 match and be done with it ;P
<leoprikler>if it's just for string matching you can also use pegs
<emestee>hmm, is the use of [ frowned upon?
<emestee>it seems popular in racket but seldom in Guile code
<leoprikler>It's generally a matter of taste imo.
<leoprikler>I personally don't find the arguments for [ very convincing
<emestee>match patterns are easier to grok, for me
<leoprikler>for match patterns, i'd really use (
<emestee>I am developing normal lisper brace vision, yeah :D
<leoprikler>Also through my investigations I've learned that [] is not valid R5RS, though it is valid R6RS.
<emestee>this is due to absence of support in the reader I imagine?
<taw10>Rainbow parentheses in the editor seem to solve the same problem better, for me at least. Once I got them set up, I forgot all about [..]
<emestee>yup just set it up 10 minutes ago
<manumanumanu>I think many see it as a waste of matching pairs. [] could be much more
<manumanumanu>A shortcut for https://hg.sr.ht/~bjoli/megacut/browse/readme.txt?rev=tip maybe? :)
<manumanumanu>[+ %2 (* %1 2)] => (lambda (%1 %2) (+ %2 (* %1 2)))
<manumanumanu>the infix syntax srfi already stole { ... }
<lampilelo>that would be really cool
***smartin1 is now known as smartin
<abcdw>hi guile! Why (display '(1+ 2)) produces (#{1+}# 2) instead of (1+ 2) ?
<sneek>Welcome back abcdw, you have 1 message!
<sneek>abcdw, ixmpp says: would be nice to be able to `Include <file>` in ssh/config... im not able to use that module right now cause i need that
<emestee>abcdw: 1+ is a procedure with special reader syntax
<abcdw>emestee: Make sense. Is there a way to print a sexp without enclosing 1+ in #{}# ?
<leoprikler>you could cheat and use symbol->string, but that's dangerous
<abcdw>leoprikler: I can't modify original sexp, I need something like (print-disable 'r7rs-symbols), but for the #{}#
<pizzapal>hey schemers
<pizzapal>can you use relative paths for module load paths?
<pizzapal>hm, using an absolute path doesn't work either. i keep getting "While compiling expression: no code for (my-module)" when i try to import it with (use-modules)... but if i use (load "./my-module.scm"), it works
<dsmith>pizzapal: Normally "." isn't in the load-path.
<pizzapal>i added the directory with add-to-load-path. so this is what works and what doesn't: https://paste.gnome.org/pko18d7z6
<pizzapal>the file shown in the paste is "physics.scm", so it is just one directory up from the one that i'm trying to load
<pizzapal>and i have `(define-module (box2d))` at the top of guile-box2d.scm
<pizzapal>oh shoot, i think i see what the problem is
<pizzapal>nope, i guess not
<pizzapal>so this works: https://paste.gnome.org/pqic50lng
<pizzapal>but (use-modules (box2d)) only works if i first evalulate the buffer, and then enter it in the repl
*pizzapal scratches head, picks nose, eats booger
<lampilelo>i mostly use (add-to-load-path (dirname (current-filename)))
<lampilelo>of course it won't work in the repl
<pizzapal>should i just install it to site packages? the guile-box2d.scm file is in development too, but i won't make any changes to it in this context
<lampilelo>for development i use (add-to-load-path "/full/path/do/source/dir/"), modules relative to that path should load fine
<lampilelo>s/do/to/
<lampilelo>also you could use GUILE_LOAD_PATH env variable
<pizzapal>yeah, i will try the env var
<pizzapal>yeah, used the absolute path and all, i get the same thing "no code for module"
<lampilelo>how is the module defined?
<pizzapal>just like `(define-module (box2d))` at the top
<pizzapal>and then i use define-public for my public defs
<lampilelo>afaik the file that defines a module should be named the same as the module itself
<pizzapal>oooooooooh...
<pizzapal>yup, that was it, haha!
<pizzapal>thank you!!!!1
<lampilelo>yeah, (use-modules (foo bar baz)) means to search for the module baz in the file foo/bar/baz.scm, relative to any dir in the load path
<pizzapal>i figured it just looked at the first line of the file
<pizzapal>but i suppose they could be compiled, so it couldn't do that then