IRC channel logs

2017-11-11.log

back to list of logs

<davexunit>is a char-set an ordered data type?
<davexunit>as in, is it merely a coincidence that iterating over (char-set #\\a #\\b #\\c) starts at #\\a, then goes to #\\b, then #\\c?
<amz3`>héllo all
<manumanumanu>amz3``: héllo!
<amz3``>:)
<amz3``>manumanumanu: did you manage to write a scheme reader in guile?
<amz3``>or it wasn't you?
<manumanumanu>amz3``: nah, I installed guix and now have access to guile-reader
<manumanumanu>which is all I ever wanted
<amz3``>ok
<manumanumanu>but I have a work-in-progress
<manumanumanu>r6rs-compatible strings and comments and some char stuff
<manumanumanu>somewhere at least
<manumanumanu>I did a complete re-install
<amz3``>on my side, I completly lost
<manumanumanu>oh? how come?
<amz3``>I don't know which project I should focus on
<manumanumanu>haha. I know the feeling
<amz3``>^^
<amz3``>I had this idea of building a search engine
<amz3``>but now I don't know
***amz3`` is now known as amz3
<amz3>I just filled an issue against 2.2.2 about web client https
<amz3> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29258
<rekado_>amz3: I also wish for built-in support for https.
<janneke>i also wish for websockets on the same port as http*
<mwette>https works if you install gnutls, I believe
<amz3>i have gnutls
<amz3>woot! it seems like there another user of wiredtiger, they just sent me a patch to add autotools to wiredtiger
<amz3>awesome
<amz3>and a guix package definition
<mwette>I installed gnutls using `./configure --enable-guile'. YOu should see gnutls.scm in /.../site/2.2/
<happy_gnu[m]>Hi \\o/
<manumanumanu>Hey ho!
<rekado_>I have gnutls and can load it in a REPL.
<mwette>then (http-get "https://...") should work, unless I missed something; it works for me
<mwette>di
<amz3>I am in the process of re-installing guix
<amz3>I will try that
<OrangeShark>hello everyone
<manumanumanu>Hello OrangeShark
<manumanumanu>What are you up to today
<OrangeShark>manumanumanu: not sure yet. I might continue working on this online class I am taking on Pharo smalltalk
<amz3>mwette: did you use guix?
<amz3>hi OrangeShark
<OrangeShark>hello amz3
<ArneBab_>amz3: yay!
<amz3>ArneBab_: :)
<amz3>well, I re-installed guix from scratch and I still can't do (https-get "https://gnu.org")
<rekado_>(re-installing guix from scratch should not be necessary. It is stateless.)
<mwette>I did not install with guix
<janneke>mwette: wow, that was quick!
<janneke>ACTION goes off to test 0.82.2
<janneke>mwette: make install fails for me
<janneke>make[1]: *** No rule to make target 'nyacc/lang/c99/util2.scm', needed by 'install-srcs'. Stop.
<mwette>ugh. util2.scm has been changed to munge.scm
<janneke>oh, it goes wrong before too
<janneke>ERROR: nyacc/util: input-stack/2 - arguments: ((wrong-type-arg "car" "Wrong type argument in position ~A (expecting ~A): ~S" (1 "pair" #f) (#f)))
<mwette>I have not been testing the install. I will add that to the release tests.
<janneke>mwette: here's what happened: http://paste.debian.net/995202/
<mwette>janneke: checking ...
<mwette>I changed .../c99/util2.go to .../c99/munge.go in modules/Makefile.nyacc and it works for me
<mwette>I just uploaded 0.82.3 to savannah.
<janneke>ACTION is packaging...
<manumanumanu>OrangeShark: I have used SeaSide a bit. Really fun, and I hate webdev :)
<janneke>mwette: i have a package, grand!
<mwette>janneke: sweet
<OrangeShark>manumanumanu: this course uses SeaSide as well, the end result is to make a blog using it
<mwette>Here is code using http-get and gnutls. If you check www/client.scm you will see where gnutls gets pulled in.
<manumanumanu>OrangeShark: SeaSide is amazing. I really really really hate web development, but I could even enjoy seaside.
<mwette>(use-modules (web client) (web response))
<mwette>(let ((resp (http-get "https://developer.gnome.org")))
<mwette> (simple-format #t "code=~S\\n" (response-code resp)))
<janneke>mwette: thanks, the def-bwl.c bug is fixed...found another bug compiling tinycc though that's not present in 0.80.4
<janneke>i need to create a small test for you
<mwette>janneke: OK. I hope I am not in a livelock situation w/ bugs :)
<mwette>janneke: I did add the def-bwl test case: test-suite/.../ex17.c
<janneke>mwette: :-) it may still be a problem on my side, i realise
<janneke>cannot reproduce in tiny example yet
<janneke>mwette: thanks!
<mwette>janneke: And I did notice the error from nyacc/lang/util.test. I will fix.
<janneke>mwette: i'm getting a parse error that puzzles me:
<janneke>./tccpp.c:498: parse failed at state 203, on input "="
<janneke>that line lists: tal_header_t *h = (tal_header_t*)toksym_alloc->p;
<mwette>If you go to test-suite/nyacc/lang/c99 and run `guile Tmach.scm' you will get a lang.txt file that lists the states. Where did you get tinycc? github?
<civodul>wingo: any thoughts on slot allocation for large functions?
<civodul> https://lists.gnu.org/archive/html/guile-devel/2017-10/msg00049.html
<wingo>civodul: i think we need to write a new slot allocator for use with -O0
<wingo>or possibly for use also for large functions without loops
<wingo>something that doesn't do the lazy allocation optimization, and something that uses linear liveness ranges
<janneke>mwette: i heavily patched tinycc, here: https://gitlab.com/janneke/tinycc #wip-mescc branch
<civodul>wingo: ok
<janneke>mwette: but to be able to parse it in full, you'll need some .h headers (that are included with mescc)
<civodul>wingo: do you think of a "quick/easy" strategy we could use?
<mwette>janneke: I don't need that. I can put something together.
<janneke>:-)
<janneke>you may not need my patched tinycc at all, though, i got my upstream from: http://repo.or.cz/tinycc.git
<wingo>civodul: dunno how to describe one :) basic idea is to produce an $allocation, the same data structure, but using once-through passes instead of fixpoints that create intmaps of intsets
<civodul>hmm ok
<civodul>ACTION feels powerless :-/
<wingo>:(
<wingo>because the internals are too opaque?
<civodul>because i know too little about what's going on, i think
<wingo>or because you have already a lot on your plate and this is just another thing :/
<civodul>that too :-)
<wingo>:)
<wingo>i understand & sympathise
<happy_gnu[m]>I have no idea what is an allocator haha.. What do I have to learn to understand this conversation
<happy_gnu[m]>Learn C?
<wingo>this is all in scheme, about how guile decides where to store local variables
<mwette>janneke: I am puzzled. I made something with similar syntax and it works.
<wingo>slot-allocation.scm
<wingo>anyway
<happy_gnu[m]>So read Guile manual?
<happy_gnu[m]>I am reading it but is gigantic
<janneke>mwette: me too
<wingo>civodul: i can get to it within a week or so maybe; or do you prefer i help you to understand it?
<janneke>mwette: i tried to recreate an exact example and failed. i'm currently bisecting the actual source
<wingo>i think i have an idea in mind, *if* the memory use spike is essentially in slot-allocation.scm
<civodul>wingo: i think it'd be hard to get me up to speed over IRC ;-)
<wingo>i wasn't able to precisely pin that down in the past but maybe you have done more science on that recently
<civodul>the memory spike is in compute-sorted-strongly-connected-components, AFAICS
<mwette>janneke: I'm off to play . Let me know via email if you get somewhere.
<janneke>mwette: will do, thanks a lot!
<wingo>civodul: do you have a ml posting that proves that before slot-allocation, things are fine, and after, things are bad?
<mwette>wingo: I think I understand much of the PC-ML paper. It looks clearly synchronous to me. Is the term "asynchronous" in the Operations section of the Fibers manual a typo?
<civodul>wingo: there's https://lists.gnu.org/archive/html/guile-devel/2017-10/msg00035.html where i mention compute-live-variables
<civodul>i've looked more closely since, and most of it comes from compute-sorted-strongly-connected-components
<wingo>ACTION nod
<civodul>ACTION goes afk for a bit
<wingo>could be a nice little speedup on compute-sorted-strongly-connected components for graphs without loops
<wingo>anyway
<wingo>mwette: could be that word is confusing, should probably just remove it
<wingo>channel operations for example are synchronous relative to timelines of threads/fibers operating on channels
<mwette>wingo: thanks. I was thinking.
<mwette>wingo: ... that. Like Ada rendezvous.
<janneke>mwette: narrowed it down...
<mwette>janneke: Thanks. I'm on it. I decided to stay home and nerd out for now.
<janneke>mwette: what? no play! ... dude!
<janneke>;-)
<mwette>janneke: I found an issue: (parse-cpp-expr "defined(USE_FOO)") => '(defined "UUSE_FOO")
<mwette>and I think I know where the problem is. The new code to parse U'x' as a character.
<janneke>oops...
<mwette>janneke: that was it. lex.scm:298
<mwette>remove `(unread-char ch)'
<janneke>ACTION has a look
<mwette>janneke: I'm using erc in emacs. What is the command to do that: '* janneke has a look'?
<janneke>mwette: "/me blah blah"
<janneke>ACTION blah blah
<mwette>ACTION ha ha
<mwette>janneke: thanks!
<janneke>alright!
<janneke>np
<mwette>janneke: Let me know if everything works then I will push out another release
<janneke>mwette: that fixes parsing tcc, i hit yet another error ... in the pretty printer this time
<janneke>In nyacc/lang/c99/pprint.scm:
<janneke> 207:4 7 (_ ((p-expr (string "\\x7fELF")) (p-expr (fixed "4"))))
<janneke>nyacc/lang/c99/pprint.scm:84:22: In procedure string-ref: Value out of range: 15
<janneke>let's see what i'm pretty printing there...
<mwette>janneke: Ah! The string is missing `F', just add
<mwette>pprint.scm, line 84 in itox
<janneke>ok; just found this fails: (pretty-print-c99 '(if (and (eq (p-expr (ident "size")) (sizeof-type (type-name (decl-spec-list (type-spec (typename "Elf32_Ehdr")))))) (eq (p-expr (fixed "0")) (fctn-call (p-expr (ident "memcmp")) (expr-list (p-expr (ident "h")) (p-expr (string "\\x7fELF")) (p-expr (fixed "4")))))) (ellipsis) (ellipsis)))
<janneke>i'll try that
<janneke>yes, i see
<janneke>ACTION goes for another test run
<janneke>mwette: just a bit more preprocessor ugliness
<mwette>janneke: bring it on!
<janneke>haven't tracked it down yet, in my .M1 output i see this diff (-bad, +good)
<janneke>the ELF32_ST_INFO macro doesn't get expanded to (0<<4) + (3 & 0xf)
<janneke>something like that, and it's probably a macro in a macro...
<mwette>doing a better job with the CPP would require recoding to have it push out a token stream instead of text, and then the C lexer would have to be reworked also. I should do it, but a big task, likely.
<janneke>mwette: this now breaks: http://paste.debian.net/995216/
<janneke>it used to (should) produce: (trans-unit (fctn-defn (decl-spec-list (type-spec (fixed-type "int"))) (ftn-declr (ident "main") (param-list)) (compd-stmt (block-item-list (expr-stmt (add (lshift (p-expr (fixed "1")) (p-expr (fixed "4"))) (bitwise-and (p-expr (fixed "0")) (p-expr (fixed "0xf")))))))))
<janneke>but it now gives: (trans-unit (fctn-defn (decl-spec-list (type-spec (fixed-type "int"))) (ftn-declr (ident "main") (param-list)) (compd-stmt (block-item-list (expr-stmt (fctn-call (p-expr (ident "ELF32_ST_INFO")) (expr-list (p-expr (fixed "1")) (p-expr (fixed "0")))))))))
<mwette>janneke: I'll work it.
<mwette>janneke: got it fixed. I had to repeat the recheck for function macros also
<janneke>mwette: nice!
<mwette>janneke: http://paste.debian.net/995221/
<mwette>that goes in nyacc/lang/c99/cpp.scm
<janneke>mwette: and with that, mescc can build tinycc again! woohoo
<mwette>janneke: I will wrap up and upload. Thanks for your patience.
<janneke>mwette: very happy with nyacc and esp. your support
<mwette>PASS: nyacc/c99-01, CPP: Jan's macro-name redef test
<mwette>PASS: nyacc/c99-01, CPP: Jan's ELF32_ST_INFO macro test
<mwette>
<janneke>ACTION builds guix package for 0.82.4
<janneke>ACTION sent update nyacc patch to guix
<civodul>\\o/
<civodul>janneke: if it works for you you can go ahead and push!
<janneke>civodul: thanks, tested will push