<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``>manumanumanu: did you manage to write a scheme reader in guile? <manumanumanu>amz3``: nah, I installed guix and now have access to guile-reader <manumanumanu>r6rs-compatible strings and comments and some char stuff <amz3``>I don't know which project I should focus on <amz3``>I had this idea of building a search engine ***amz3`` is now known as amz3
<amz3>I just filled an issue against 2.2.2 about web client https <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>woot! it seems like there another user of wiredtiger, they just sent me a patch to add autotools to wiredtiger <amz3>and a guix package definition <mwette>I installed gnutls using `./configure --enable-guile'. YOu should see gnutls.scm in /.../site/2.2/ <rekado_>I have gnutls and can load it in a REPL. <amz3>I am in the process of re-installing guix <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? <rekado_>(re-installing guix from scratch should not be necessary. It is stateless.) <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>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. <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. <manumanumanu>OrangeShark: I have used SeaSide a bit. Really fun, and I hate webdev :) <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> (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 <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? <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: 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. <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 <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 :/ <happy_gnu[m]>I have no idea what is an allocator haha.. What do I have to learn to understand this conversation <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>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. <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>i've looked more closely since, and most of it comes from compute-sorted-strongly-connected-components <wingo>could be a nice little speedup on compute-sorted-strongly-connected components for graphs without loops <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: ... that. Like Ada rendezvous. <mwette>janneke: Thanks. I'm on it. I decided to stay home and nerd out for now. <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. <mwette>janneke: that was it. lex.scm:298 <mwette>janneke: I'm using erc in emacs. What is the command to do that: '* janneke has a look'? <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> 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 <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>mwette: just a bit more preprocessor ugliness <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>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: got it fixed. I had to repeat the recheck for function macros also <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 <janneke>ACTION builds guix package for 0.82.4 <janneke>ACTION sent update nyacc patch to guix <civodul>janneke: if it works for you you can go ahead and push!