IRC channel logs

2020-01-16.log

back to list of logs

<bandali>slyfox, i think they froze it; but feel free to bump that bug and cc wingo i guess :)
<dsmith>unknown_lamer: The clues from wingo helped. Still not quite there yet.
<dsmith>The bot can write to the channel, but seems to have trouble responding from a db query.
<dsmith>I fussed with the db interface today at work, and it seems to be ok.
<dsmith>I might need to dump and restore the db.
<dsmith>The current plan is trying to bring the bot up on 3.0 on an intel box temporarily while I try to squeeze a Stable Debian into 2G (1.7G actually)
<dsmith>sneek: seen wingo
<sneek>wingo was here Jan 15 at 10:02 pm UTC, saying: night!.
<dsmith>sneek: botsnack
<sneek>:)
<dsmith>sneek: seen unknown_lamer
<sneek>unknown_lamer was here Jan 15 at 03:24 pm UTC, saying: if you don't figure it out lmk and I can try to take a look later.
<dsmith>!uptime
<sneek> 20:34:51 up 53 days, 3:46, 1 user, load average: 0.44, 1.50, 1.52
<dsmith>!uname
<sneek>Linux gpib 4.9.0-11-686 #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) i686 GNU/Linux
<dsmith>sneek: info
<dsmith>!info
<dsmith>sneek: version
<sneek>Sneeky bot running on Guile version 2.9.9 using bobot++ 2.3.0-darcs
<dsmith>What!
<dsmith>sneek: version
<dsmith>sneek: botsnack
<sneek>:)
<dsmith>Hmm.
<dsmith>sneek: botsnack
<sneek>:)
<dsmith>!uptime
<sneek> 20:43:27 up 53 days, 3:54, 1 user, load average: 0.05, 0.36, 0.90
<dsmith>sneek: version
<sneek>Sneeky bot running on Guile version 3.0.0 using bobot++ 2.3.0-darcs
<dsmith>Yesss!!!
<cnmne>yay !!
<manumanumanu>Good morning everyone! What are y'all up to?
<RhodiumToad>hating the tire fire that is the web and its browsers
<manumanumanu>RhodiumToad: Writing for the browsers or using them?
<RhodiumToad>having to randomly add or remove stuff from ill-defined markup languages in order to try and get sensible output
<manumanumanu>ah. Joyful times!
<manumanumanu>I write most of my things in an old XML doctype I wrote in 2006 and have XSLT that I don't dare touch that just works.
<RhodiumToad>hah
*RhodiumToad noticed that nobody cared about his sxml bug
<manumanumanu>What bug?
<RhodiumToad>incorrect parsing of CDATA
<manumanumanu>ouch.
<RhodiumToad>apparently the author misread the spec
<RhodiumToad> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=38269
<manumanumanu>did you try reporting it upstream?
<RhodiumToad>I've reported it everywhere I could find
<RhodiumToad>ssax mailing list, even though that's had nothing for years; comp.lang.scheme, etc.
<manumanumanu>hmpf.
<manumanumanu>that is indeed a very buggy bug
<manumanumanu>and quite obvious.
<RhodiumToad>I find it fascinating that it's been something like 20 years and nobody seems to have noticed before
<manumanumanu>It is not like it is a small bug. Maybe people only use SSAX to generate HTML from sxml?
<manumanumanu>I'll try to look into it and see if I can submit a patch upstream whatever use that might be.
<RhodiumToad>it would have been good if the standard xml validation suite had an instance of &gt; inside cdata; it has tests for &lt; and (iirc) &amp; but not &gt;
<RhodiumToad>probably because whoever wrote the tests didn't anticipate that anyone would misread the spec badly enough to process &gt; but not &lt;
<manumanumanu>the procedure is ssax:read-cdata-body
<manumanumanu>and it has special handles for tokens starting with #\&. Shouldn't that just be ripped out?
<manumanumanu>CDATA is anything that isn't literally ]]>, no? So there should be no handling of any &blah;
<manumanumanu>wrong. Both CDATA and PCDATA is handled by the same code.
<RhodiumToad>cdata needs to process two things: newlines (for canonicalization) and literal ]]> for end of cdata, nothing else
<RhodiumToad>so #\& needs to be removed from the delimiters, and the (#\&) section in the case ripped out
<peanutbutterandc>Hello there
<RhodiumToad>also if you care about the test cases, those do test for the wrong behavior, so that should be fixed too
<RhodiumToad>good morning
<peanutbutterandc>I know this is the last day for guile 2.2.x, but I think I have found something strange. I was trying to go through the book Simply Scheme and I did (load "simply.scm") (the book's extensions to scheme) and it works in scm, mit-scheme, tinyscheme; but with guile, running (word 'com 'puter) seems to be stuck in an infinite loop - with my cpu maxed out, too (one core atleast).
<peanutbutterandc>Good morning!
<peanutbutterandc>I am running `guix install guile-next` to see if that happens even in guile2.9.9 just to make sure
<peanutbutterandc>Here is the scheme initialization file from the book: https://people.eecs.berkeley.edu/~bh/ssch27/appendix-simply.html
<manumanumanu>RhodiumToad: The racket sxml version is the same.
<RhodiumToad>yup. every copy of the ssax parser I found is the same.
<RhodiumToad>peanutbutterandc: interesting, I get the same
<RhodiumToad>it seems to be looping in compile, not even getting to execute the code?
<peanutbutterandc>Whoa! Installing guile-next kinda' over-wrote guile in my guix profile. uh uh
<peanutbutterandc>I guess it was to be expected but still
<manumanumanu>RhodiumToad: submitting a bug report there. There has been some activity there, and I know it has seen some use in racket. Maybe the maintainer of the package knows his/her way around the code better than I do.
<peanutbutterandc>Is there an option to tell guile to not load any init files?
<manumanumanu>peanutbutterandc: in interactive mode you can use -q
<peanutbutterandc>manumanumanu, Great! Thank you!
<peanutbutterandc>RhodiumToad, (word 'comp 'uter) works just fine in guile2.9.9, however. So I suppose it is all right. It's only one more day for 2.x series anyways. :)
<peanutbutterandc>Guile isn't going to do the Python thing and extend support for the 2.x series for another decade, now, is it? :D
<RhodiumToad>peanutbutterandc: it's the strings-are-numbers thing at the end that breaks it
<peanutbutterandc>That reminds me, 2.x - will it be obsolete from tomorrow?
<RhodiumToad>I sincerely hope not
<peanutbutterandc>RhodiumToad, I see... I wouldn't know. Hmm... I thought guile2.x code was compatible with guile3.x... or so I think I heard/read
<manumanumanu>RhodiumToad: I think I got it.
<manumanumanu>ssax:read-cdata-body explicitly handles > but not <.
<RhodiumToad>got what?
<RhodiumToad>yes, that's the issue, it's converting &gt; to > when it's not supposed to
<manumanumanu>Let's just duplicate the clause and see what happens :D
<RhodiumToad>wait, what?
<RhodiumToad>the dozen lines of code that does that conversion just need to be taken out
<peanutbutterandc>Okay... I think I just hit another issue. Mr. Wingo says that guile 3 is "essentially source compatible" (https://youtu.be/fWv4AlVbJZ8?t=48), however, with `guile-readline` installed, running guile2.9.9 is throwing an error
<manumanumanu>(and (string=? "gt" ent-ref) (eqv? (peek-char port) #\;)) => (and (or (string=? "gt" ent-ref) (or (string=? "lt" ent-ref) ...
<manumanumanu>RhodiumToad: no, because that code also handles PCDATA (i think).
<peanutbutterandc>Here is the error: https://termbin.com/57gd
<manumanumanu>peanutbutterandc: it is just because guile-2.9.9 can't find the readline .o-file
<peanutbutterandc>I am using `guile --fresh-auto-compile`
<peanutbutterandc>manumanumanu, I see. And how would I resolve that, please? (I am a n00b)
<manumanumanu>you _could_ symlink it into your guile 3 lib dir. Not saying you _should_, though.
<RhodiumToad>manumanumanu: I don't think so
<RhodiumToad>manumanumanu: read-cdata-body is called only after seeing CDSECT, which is <![CDATA[
<peanutbutterandc>manumanumanu, I see. `guix package --search-paths` isn't showing guile3 related env vars. That makes sense. So, I will --roll-back now and will be using guile3 once guix starts shipping it as guile instead of guile-next. :)
<RhodiumToad>manumanumanu: I don't have any idea what you're trying to do there
<RhodiumToad>manumanumanu: you seem to be trying to process &lt; as well? which would just break it more?
<RhodiumToad>(processing &lt; inside CDATA will at least instantly fail the validation suite)
<manumanumanu>RhodiumToad: sorry, just commenting out the explicit handling of &gt; is what we need, otherwise the & will be removei
<manumanumanu>I was upside-down for a moment, sorry
<RhodiumToad>right, and you also need to remove the & from the list of delimiters at the top of the function
<manumanumanu>yeah. then we can completely remove the #\& clause
<manumanumanu>TADAA. now both &lt; and &gt; is represented literally inside CDATA for me, but works like expected outside it.
<manumanumanu>RhodiumToad: do you want to report it to the racket library?
<RhodiumToad>I don't use racket
<RhodiumToad>so you can report it :-)
<RhodiumToad>(a link would be nice though)
<manumanumanu>me neither, but it seems to be a rather maintained version of SSAX, which means maybe someone that knows the code can verify the fix.
<manumanumanu>it is literally the same code that guile uses.
<wingo>moin
*wingo knows ssax code fwiw, please do send a patch to guile
<manumanumanu>wingo: The problem is not the patch, the problem is verifying that it doesn't destroy anything else.
<wingo>there are options in that case (e.g. parameters defaulting to on or off)
<manumanumanu>nope.
<manumanumanu>it seems to be, as RhodiumToad said, an overly militant reading of the spec that nobody else did
<RhodiumToad>not militant, but misguided
<manumanumanu>that also happens to be wrong
<civodul>Hello Guilers!
<RhodiumToad>I checked as many xml implementations as I could find, and they all agree that what ssax did is wrong
<manumanumanu>exactly. The spec specifies that only CDEND "]]>" is a special char in CDATA, but only enumerates &lt; and &amp; in connection to the example.
<manumanumanu>RhodiumToad: https://github.com/jbclements/sxml/issues/7
<manumanumanu>wingo: I will submit a patch and run tests
<RhodiumToad>(and ]]> can be escaped as ]]]]><!CDATA[> which looks to me like some sort of demented fish, but whatever)
<RhodiumToad>er, ]]]]><![CDATA[>
<manumanumanu>building from HEAD now.
<RhodiumToad>did the markup eat characters in your report? "... where < was converted to < inside ..."
<RhodiumToad>and #& for #\&
<manumanumanu>yes :(
<manumanumanu>now
<manumanumanu>and I got it wrong
<manumanumanu>now it is fixed
<wingo>guile 3 day woo
<manumanumanu>woop woop!
<manumanumanu>So, outing myself as a clueless classical musician: I have made changes to the SSAX code and tests in my local git repo. Is there any way I can rebuild the repo without having to make a complete rebuild?
<manumanumanu>just changing it and running make didn't cut it :D
<wingo>manumanumanu: ah that is because ssax.scm is "included" in some other file
<manumanumanu>wingo: thx.
<wingo>i would "find module/sxml -name '*.go' | xargs rm" :)
<manumanumanu>of course!
<wingo>then make
<manumanumanu>wingo: but then it does not run the tests it seems.
<wingo>run tests via ./check-guile
<manumanumanu>alles klar!
<wingo>possibly use instead ./check-guile sxml.ssax.test or whatever it is
<wingo>i.e. to run tests just from that file
<wingo>see "ls tests/test-suite/" to see list of tests
<manumanumanu>got it
<zig>guile 3.0 ftw
<manumanumanu>O_o. ssax tests output not only the failed expression, which happens to be 5. Not the values, mind you, only (equal? result expected-result).
<manumanumanu>I hve identified 4 of the offending tests!
<manumanumanu>all offending tests found!
<manumanumanu>this turned out to be quite an adventure! :D
<manumanumanu>only one seems kind of unexpected
<manumanumanu>all offending tests found.
<nly>hello
<nly>This has been sitting for a while now: https://lists.gnu.org/archive/html/guile-devel/2019-08/msg00029.html
<nly>"Add procedure list->hook in Guile"
<wingo>do you think it should be applied? i was not sure
<nly>This may not be usable code right off the bat
<wingo>i don't know, the hook interface in guile is not very nice
<wingo>i would prefer to move it to a module and deprecate the bindings in the default environment
<wingo>at that point list->hook would be fine obviously
<wingo>but adding something to the default environment has a high (tho not insurmountable) bar
<nly>I want to dive into the Guile source one day
<nly>maybe that comes later, but I can try to make the said hooks module
<nly>under the watch of the Guile hackers, ofcourse :)
<nly>I'll be back when I have something to show.
<nly>wingo:
<brettgilio>wingo: Congrats on the release!
<manumanumanu>phew! all tests passing
<wingo>thanks!
<wingo>all done now, mail sent, web site updated https://www.gnu.org/software/guile/news/gnu-guile-300-released.html
<weinholt>wingo, congratulations! now the real beta testing starts :)
<wingo>hah download page is a bit of a mess, will fix
<wingo>weinholt: indeed ;)
<wingo>& tx
<jonsger>wingo: congrats :)
<brettgilio>wingo: I'd love to help you with Guile some day when I have more time. Currently OCaml compiler hacking is taking up virtually all of my time :).
<lloda>3.0!!!!
<lloda>I started using Guile back in the 1.6 days I think. It's come a long way..
<lloda>or maybe even 1.4. I remember using the gh_ things
<manumanumanu>RhodiumToad: patch submitted to the guile-devel mailing list.
<manumanumanu>RhodiumToad: could you maybe send a link to the patch on teh ssax mailing list?
<jcowan>The term PCDATA means "parsed character data", and CDATA is implicitly "(non-parsed) character data". So indeed, nothing but ]]> should be specially handled in a CDATA section.
*jcowan is surprised Oleg got that wrong
<manumanumanu>I am more surprised it hasn't been fixed... A testament to how widespread scheme is, I guess :D
<jcowan>Charles The Great Knew All And Foresaw All -- not.
<jcowan>That, and a testament to how rarely & appears in CDATA sections.
<civodul>wingo: yeah! congrats! \o/
*civodul -> happy dance
<manumanumanu>guile 3.0 is my new favourite guile release!
<civodul>:-)
<dsmith>Three! Point! Oh! Three! Point! Oh! Three! Point! Oh!
<dsmith>Woo
*sneek I'm a 3.0!
<sneek>Woo
<dsmith>unknown_lamer: What's the best way to get bobot patches to you?
<wingo>sneek: botsnack :)
<sneek>:)
<janneke>wingo: congrats!!
<nerdypepper>wooooop!
*wingo afk for a while
<ggoes>congrats all
<bandali>hello and congrats y’all!
<lxsameer>hey folks what does #+ do ? is it like referring to a field of current record or something ?
<bandali>see https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html
<lxsameer>thanks
<bandali>np
<davexunit>congrats on the release.
<dsmith-work>Thursday Greetings, Guilers
<dsmith-work>civodul: Needs a topic update!
<unknown_lamer>dsmith-work: email and a repo I can pull from
<dsmith-work>unknown_lamer: Ok. I emailed a patch earlier this morning.
<dsmith-work>unknown_lamer: You still at unknownlamer.org ?
<unknown_lamer>clinton@unknownlamer.org
<unknown_lamer>ah I see it now
<dsmith-work>Yeah, that's what I used.
<unknown_lamer>k9mail didn't refresh this morning
***ng0_ is now known as ng0
<dsmith-work>unknown_lamer: Still needs more work. As I mentioned, the -S and -D options are not working right.
<unknown_lamer>basically working is a start after ten years of gathering dust :)
<dsmith-work>heh
<daviid>hey hey gulers! congrat for the 3.0 release! so much progress since the early days ... amazing!
<sneek>daviid, you have 2 messages.
<dsmith-work>Aaannd.. they are...?
<dsmith-work>sneek: botsnack
<sneek>:)
<dsmith-work>Hmm.
<dsmith-work>sneek: seen unknown_lamer
<sneek>unknown_lamer was here Jan 16 at 03:34 pm UTC, saying: basically working is a start after ten years of gathering dust :).
<dsmith-work>daviid: Sorry, the bot has moved to a different box with the upgrade to 3.0 and is still recovering from surgery.
<daviid>:) np
<spk121>today I learned that compiling GCC takes longer than compiling Guile
<rotty>cloning guile on this machine in celebration of the 3.0 release, and noticed that the http git URL could be changed to https, and updated to avoid a redirect:
<rotty>warning: redirecting to https://git.savannah.gnu.org/r/guile.git/
<rotty>(issued by `git clone https://git.sv.gnu.org/r/guile.git`)
<rotty>(although the latter may be deliberate for URL shortness reasons?)
<dsmith-work>spk121: Woah. I didn't think anything could take longer.
<akhetopnu>hi. I just cloned guile onto my computer and there is no './configure' script to run, and make tells me to run it first, what am I supposed to do? Also in the README file a file called INSTALL is mentioned, but it's not there...
<akhetopnu>I'm on commit a0fdb4efc18ce47520170a8ccfd7f3f4c5c99d47 (tag v3.0.0)
<dsmith-work>akhetopnu: ./autogen.sh But better to grab the release tarball, the build will be about 5 times faster.
<dsmith-work>Because of some pre-built bootstrapped files.
<akhetopnu>hmm after running `sudo make install` I get this erro
<akhetopnu>ldconfig: /usr/local/lib/libguile-3.0.so.1.0.1-gdb.scm is not an ELF file - it has the wrong magic bytes at the start
<akhetopnu>and this file is indeed some scheme code
<akhetopnu>this is the output of `sudo ldconfig`
<dsmith-work>akhetopnu: Yes, that's an issue with ldconfig. Not a problem.
<dsmith-work>ldconfig assumes that everythng in */lib/ *must* be a .so, and complains if not.
<akhetopnu>Ok, i get another error when running `guile`
<akhetopnu>guile: warning: failed to install locale
<akhetopnu>Pre-boot error; key: misc-error, args: ("primitive-load-path" "Unable to find file ~S in load path" ("ice-9/boot-9") #f)Aborted
<akhetopnu>is this something I should be able to figure out from the README file?
*sneek stretches
<dsmith-work>sneek: later tell gorf Testing Message
<sneek>Got it.
***dsmith-work is now known as gorf`
***gorf` is now known as dsmith-work
<dsmith-work>sneek: later tell dsmith-test Testing Message
<sneek>Okay.
***dsmith-work is now known as dsmith-test
<dsmith-test>hey
<sneek>Welcome back dsmith-test, you have 1 message.
***dsmith-test is now known as dsmith-work
<dsmith-work>sneek: seen dsmith-test?
<sneek>Sorry, no.
<dsmith-work>sneek: seen rotty?
<sneek>rotty was here Jan 16 at 05:11 pm UTC, saying: (although the latter may be deliberate for URL shortness reasons?).
<dsmith-work>sneek: seen akhetopnu?
<sneek>akhetopnu was here Jan 16 at 05:58 pm UTC, saying: is this something I should be able to figure out from the README file?.
<dsmith-work>Hmm
<dsmith-work>akhetopnu: No idea why you have that error. Do you have another guile installed perhaps? Like from a package manager?
<akhetopnu>I specifically uninstalled my distro's guile version first
<akhetopnu>it's a fairly fresh system too, nothing extraordinarily weird should've occured in any config file
<akhetopnu>maybe i'm simply missing something, I'm looking at GUILE_LOAD_PATH env variable but I added some directories to no avail
<dsmith-work>Shouldn't need to. Did you pass any args to ./configure ?
<akhetopnu>no
<dsmith-work>akhetopnu: What kind of machine are you on?
<akhetopnu>custom built PC
<dsmith-work>What os?
<akhetopnu>void linux
<akhetopnu>I want to try out the 3.0.0 version that just came out because void's repos have 2.0.something still
<dsmith-work>akhetopnu: Sorry I can't help much. I think the guile devs are all out partying.
<akhetopnu>that's too bad, thanks anyway
<dsmith-work>akhetopnu: Only thing I might suggest is running guile under strace -efile and see where it's looking for files. And where it's not looking.
<dsmith-work>that it should
<akhetopnu>omg thanks
<akhetopnu>strace explained everything
<akhetopnu>guile is getting Permission denied on those files
<akhetopnu>`sudo guile` worked, however I needed to run `sudo make install` because I was getting Permission denied too
<akhetopnu>should i chown those folders?
<dsmith-work>The guile dirs *ought* to be readable by mere mortals.
<dsmith-work>So yeah, granting read access to others is needed
<akhetopnu>brilliant, thanks
<akhetopnu>Hmm what does it mean when I try to define a function `(define (a b c) (+ b c))` and I get 'Unbound variable: compile' error?
<akhetopnu>also when I run guile it compiles a bunch of stuff and I get warnings about unbound variables like:
<akhetopnu>#<variable 7f7910a2a8f0 value: #<undefined>>
<manumanumanu>Your guile install seems botched beyond repair...
<manumanumanu>were you bitten by a difference between "sudo make install" and actually running make install as a superuser?
<manumanumanu>I had that problem with another project a billion year ago on ubuntu, so I never do "sudo make install" anymore, I always do "su" first.
<manumanumanu>do a "sudo make uninstall" and then go back as a proper superuser and try a make install again...
<manumanumanu>akhetopnu: highlight to get your attention :D
<zig>nly: there is https://srfi.schemers.org/srfi-173/srfi-173.html
<zig>nly: for hooks
<zig>nly: feedback welcome. There hook->list
<zig>ahah wrt to guile 300: https://news.ycombinator.com/item?id=22063772 and https://lobste.rs/s/o7zmnk/gnu_guile_3_0_0_released_with_jit
<drakonis>HN is a goldmine
<drakonis>the comments in the bottom in HN are err
<drakonis>welp
<zig>"Guile is a leading implementation of Scheme. It's valuable by itself."
<OrangeShark>nice :)
<zig>Let's replace all REDIS clusters with guile ;)
<zig>(some dream of mine)
<akhetopnu>manumanumanu: I did `sudo make uninstall` then `su` and then I ran `make install` but I'm getting the same errors
<akhetopnu>also gettings lots of `no such language cps` etc
<akhetopnu>but that's probably something I can install separately (just guessing)
<akhetopnu>hmm I think I'm getting less of those errors now, mostly the `no such language` ones
<zig>no you can not install language cps separatly. I am backlog to try to understand your problem.
<zig>akhetopnu: what is your problem?
<zig>the locale warning is harmless.
<ft>Happy new major day. Someone change /topic. :)
<akhetopnu>I've got a bunchof error after cloning guile repo onto my computer and trying to install it
<akhetopnu>now I got `Stack overflow` during compilation of /usr/local/share/guile/3.0/system/vm/disassembler.scm
<zig>can you paste the errors at https://paste.gnome.org
<akhetopnu>yes
<zig>that strange
<zig>the other error about ELF is harmless too
<akhetopnu> https://paste.gnome.org/pvuu5zjmo
<akhetopnu>it's still going but I think the problem should be known from just this part
<zig>akhetopnu: re-do the autotools cli dance based on the released tarball (compilation will much faster)
<zig>akhetopnu: http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.gz
<zig>akhetopnu: here is the signature: http://ftp.gnu.org/gnu/guile/guile-3.0.0.tar.gz.sig
<zig>otherwise https://lists.gnu.org/archive/html/guile-devel/2020-01/msg00080.html
<zig>the cli dance is: ./configure && make && sudo make install
<zig>akhetopnu: what is the host operating system?
<akhetopnu>void linux
<zig>ok
<akhetopnu>I think the errors are from a tarball actually, because someone already told me to download one instead, but I'll do it again
<zig>fwiw, installing guix on top of any distro is painless and harmless, see https://guix.gnu.org/
<akhetopnu>would it be easier to just install guile 3.0 through guix?
<zig>yes
<zig>follow the instruction in red at https://guix.gnu.org/manual/en/html_node/Binary-Installation.html
<zig>also in it will be easier to install packages related to guile.
<zig>that is guile modules...
<zig>akhetopnu: what is your programming / coding background?
<zig>akhetopnu: I mean to ask: what programming language(s) do you already know?
<zig>akhetopnu: I recommend you subscribe to guile-user mailing list at https://lists.gnu.org/mailman/listinfo/guile-user
<zig>akhetopnu: also... welcome onboard the guile software system :)
<akhetopnu>i'm a web developer, mostly javascript (browsers + nodejs), I had to use typescript/angular at work for a year html/css obviously, but trying new stuff, I guess i'm still a novice in common lisp but I can get around asdf, macros (to an extent, I get the different between symbols, keywords, packages etc, at work I have to do some java these days but I'm rather novice at it too
<akhetopnu>thanks, I've subscribed to the mailing list months ago and I've been reading the mails in spare time
<akhetopnu>I want to use guile for low level stuff like epoll/sockets/concurrency, common lisp is a lot of pain when it comes to libraries and guile has been on my radar for a year or two
<akhetopnu>not sure if it's possible to insert memory barriers into guile code (want to learn how to use it but using a lisp, not C)
<akhetopnu>so I ran `guix install guile` and I see it keeps downloading stuff, old gcc (4.9.4), sed, bash, is that going to clutter my system loading paths?
<akhetopnu>and, since your name is zig, I actually tried out zig some time ago but it wasn't very polished yet, so I put it on the back burner
<zig>I am not zig language user actually. I just like that name.
<zig>akhetopnu: what I do wrt to guix, I have guix.sh that I source before using guix
<sneek>FOR GREAT JUSTICE!
<zig>akhetopnu: you need to run `guix pull` then `guix package -i guile-next` then read about guile-fibers https://github.com/wingo/fibers/wiki/Manual#Introduction
<akhetopnu>did you write it yourself or was it generated by guix
<zig>akhetopnu: what is?
<akhetopnu>ok, should I abort the `guix install guile` process?
<zig>akhetopnu: yes you can.
<zig>sneek: botsnack
<sneek>:)
<zig>akhetopnu: I do not know what are "memory barriers", can you explain?
<akhetopnu>so basically when you code in C for example, you compile your program with clang or gcc
<akhetopnu>and since gcc/clang try to optimize your code, one of their 'optimizations' is to actually reorder the instructions, so the output binary might execute code withint a function or a block in a different order than you (as a developer) wrote
<akhetopnu>so you can insert a thing called 'memory barrier' telling the compiler not to move stuff over the barrier
<akhetopnu>it's useful if you have 2 threads and want 1 thread to wait for a variable to change its value from 0 to 1 for example, so if in the other thread you ensure instruction order to do something, and *then* change this variable's value, then in the other thread you can be sure that all the necessary steps that had to happen *before* this value was changed - happened.
<akhetopnu>that's how I understand it and hopefully I didn't make it too convoluted
<zig>I am not familiar with this concept. Also, if you have issues with guix I recommend you ask on guile-user mailing list or guix-help (https://lists.gnu.org/mailman/listinfo/help-guix)
<zig>akhetopnu: guile-fibers (the green threads or coroutine) does not forbid global states or shared states, but it recommends the use of channels and message passing (like go or erlang)
<zig>my understanding is that if one wants to have all instruction happen in parallel but some stuff must happen in serial, one would do some kind of map-reduce thingy
<akhetopnu>I haven't used such low level constructs either, I've been reading about them to understand what's going on, it might be that guile compiler/interpreter doesn't reorder instructions so these memory barriers might not be necessary
<akhetopnu>I'm curious what's the performance of these fibers compared to async/await in nodejs
<dsmith-work>akhetopnu: You might want to read the wingolog for some info on the guile compiler
<dsmith-work>akhetopnu: https://wingolog.org/tags/compilers
<akhetopnu>will do, thanks
<zig>akhetopnu: so far there is no benchmark, afaik, comparing guile with nodejs. Hint: guile fibers can work with multiple threads, so from a memory usage perspective it will prolly be better.
<akhetopnu>if they scaled to multiple threads that would be amazing, I'm not familiar with the guile ecosystem though, in nodejs when you use a database driver you know it's all asynchrounous, but in guile I have no idea (yet)
<zig>speaking of benchmark it would be nice to have a guile line at https://www.techempower.com/benchmarks/ (cc nalaginrut)
<dsmith-work>akhetopnu: So did you ever get a working guile installed?
<akhetopnu>I did `guix pull` 1 hour ago and it's still going lol
<akhetopnu>it's downloaded ~30-40 packages so far, building and configuring them
<akhetopnu>I used to tinker with guile 1 year ago but that was on arch and I think I had a version installed by pacman
<dsmith-work>Ahh, ok.
<dsmith-work>I need to try out guix sometime