<ijp>hmm problem compiling psyntax <ijp>guile: uncaught throw to system-error: (load-thunk-from-disk ~A (No such file or directory) (2)) <ijp>maybe it was just some stale build state <dsmith-work>Well, he's running and not crashing, but he's also not responding. <ijp>don't know their place <sneek>Linux berry 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux <sneek> 19:07:04 up 18:07, 1 user, load average: 0.01, 0.09, 0.16 <sneek>Sneeky bot running on Guile version 2.0.9 using bobot++ 2.3.0-darcs <dsmith-work>mark_weaver: There were a few places with "dsmith" hardcoded in the path, and also my sqlite module was (database sqlite) now just (sqlite) <dsmith-work>mark_weaver: It was really nice that I didn't need to mess with the database. He's using the same binary sqlite file on a different endian system. <fbs>need to finish my irc bot <fbs>hmm might work on that one day <dsmith-work>I need to redo it in pure scheme. Get away from that funky C++ bobot <fbs>my think is somewhat pure scheme <fbs>its a mess, but no c in it <fbs>rpi is quite nice, need to get me one for this sumer <cky>fbs: In my Copious Free Time(tm) I intend to write a bot too, that uses guile-gnutls bindings (thanks civodul). :-) <cky>fbs: Re "does yours do ssl?". ***sneek_ is now known as sneek
*nalaginrut is handling local-eval black-magic for template... <wingo>nalaginrut: another use for local-eval, neat :) <wingo>similar to the lilypond use, in the end... <nalaginrut>wingo: I've heard that local-eval is evil, I wish this use won't be so evil ;-D <wingo>meh, sometimes evil is appropriate ;) <nalaginrut>and if guile-100's template implementation is better than mine, I'll use it ;-P <nalaginrut>besides, working on blog-engine makes my Artanis better now~ <wingo>i think i haven't taken many photos in recent years because i was waiting to rewrite my photo gallery in scheme <nalaginrut>wingo: yes, that's I stopped update my blog, I want to write a perfect blog for myself <wingo>the perfect is the enemy of the good <nalaginrut>hmm...there would be some guy jump out to blame it~so I'm not afraid of~ <nalaginrut>I'll put the demo to my VPS today, but I have no time for CSS this week *janneke hears lilypond and wakes up ;-) <wingo>civodul: so what's next? :) you have any plans? *wingo was going to finish RTL debugging support <civodul>i'd like to spend some more time on Guix in the coming weeks <civodul>but i think that getting the RTL VM into shape would be great <wingo>i think i can do it within a month or so <wingo>depends on how much time the garden takes ;) <DerGuteMoritz>RTL is a terrible German TV station, I hope it's not related :-) <wingo>DerGuteMoritz: it's a new virtual machine for guile -- register-based instead of stack-based <wingo>and which uses ELF as the object format so we can put read-only shareable things into other sections <wingo>much closer to proper native compialtion <wingo>i think we'll actually use DWARF, even... <wingo>civodul: i already have a full parser *civodul wrote a stabs parser ten years ago <wingo>and yes, i have some dirt i am trying to turn into peas and tomatoes <wingo>late spring this year, lots of work to do... *nalaginrut is waiting for registerVM... <wingo>DerGuteMoritz: yes i think it will be the main 2.2 feature <wingo>speeds up VM code by varying amounts, but about 40% overall i think <wingo>then we can look at generating native code (woo) <civodul>nalaginrut: yes, like DWARF, but not as expressive <wingo>we could add aot incrementally -- it can be another section in the elf files, with proper linking to the constant sections, etc... <nalaginrut>civodul: ha~I wrote similar thing when I was doing OS homework, to backtrack the kernel function... <nalaginrut>wingo: anyway, I think it's possible to implement external AOT compiler, taking advantage of bytecode <wingo>but tough to get nice debugging with an external compiler <wingo>i think the compiler is actually a small portion of what we need -- the runtime is harder <nalaginrut>my thought is dump ASM to the tmp files, then call 'as', and we may provide multi-platform native code, in principle... <wingo>much better to write an assembler in scheme <wingo>it's not that hard, there's lots of existing work out there to borrow <nalaginrut>I think implement assembler is not so hard, but it's hard to provide many platform, no? <wingo>that's the thing, we don't have to <wingo>because we'll always have the interpreter <wingo>it's easy to do x86-32 x86-64 and arm, and that covers the majority of things <wingo>add mips, sh4, and ppc and that's pretty much all of them <nalaginrut>DerGuteMoritz: no, I'm not familiar in "how to make RPM package", but I'll take some time to learn, as the plan, we should have a repo for all latest Guile things <nalaginrut>though Guile is standard package of current distro, its update so slow <nalaginrut>add AVR, reference Marc Finley's picobit design, hey! I'm serious, who said joke huh? <nalaginrut>when Guile-5.0 released, it's a system language~ <wingo>i wish we had a better type system... <wingo>nalaginrut: not sure exactly what "system language" means <wingo>like, can you do GC in a systems programming language? <lloda>what do you think about the vector/array changes I proposed <wingo>haven't had a chance to look at them <lloda>what jumped at me is that the implementation is already like this <lloda>all the types that are used as SCM_I_ARRAY_V are base=0, lbnd=0, inc=1 <lloda>it's only the interface that is inconsistent <lloda>and lets you use xxx-ref, etc with objects that are actually arrays <wingo>hummmm, i will have to page all that in to review it <wingo>you are usually right in these things but i would like to understand it all before commenting :) <lloda>right, I'd like a second opinion, or a third. <lloda>but there are many bugs and if we just patch them, it will only make everything more spaghettiish <wingo>i agree that we need consistency above all, especially in the arrays code <lloda>ok, i'll send a patch set, so the proposal can be tested. I'm already halfway done. <fbs>cky: maybe we can team up and write a bot <civodul>is it the one that started for the potluck? <davexunit>this years potluck? there are commits dating 3 years back. <the-sun>civodul: I once tried a window manager written in common lisp. It turned out I didn't care much about the way my windows were managed :) <the-sun>I thought I would want to customize it like in Emacs or something... <the-sun>It might be useful for some special purpose PCs though. <civodul>well, similar for me, i use Ratpoison <davexunit>I've been hearing about scwm lately. I need to try it. <add^_>davexunit: Has there been something done on that for a couple of years? <add^_>I remember using that for a while <add^_>But I didn't know if there's been something done on it since then <dsmith>davexunit, I've been slowly debitrotting it to work with modern guile. <dsmith>It's useable at this point. The C code is almost all together (need to look into delimited continuations). <dsmith>There is an ancient gtk interface that needs updating to new gnome-guile. But that's not required to use it. <dsmith>I personally don't use it much. Maybe I should. Start dogfooding it. <dsmith>Well, I haven't checked. I'd be *very* surprised if it does! <davexunit>dsmith: cool. I will hopefully remember to try it out this weekend when I have a chance. <davexunit>I haven't used any alternative window managers lately. I've been sticking with mutter. <DerGuteMoritz>i.e. is index.scm an actual script that's executed to produce the page? or does it only look like it? <davexunit>nalaginrut_: artanis is an interesting project. <nalaginrut_>DerGuteMoritz: and index.scm is not a real script file, it's route and dynamically generated articles as HTML <davexunit>nalaginrut_: I do rails development so it's very cool seeing a sinatra-like framework written with scheme. <nalaginrut_>DerGuteMoritz: I use *.scm to indicate it's Scheme, however, I have to use *.scm to redirect the request with Nginx <nalaginrut_>but all *.scm will redirect to port 1234 which is running artanis <nalaginrut_>davexunit: yes, that's my aim, the sinatra like framework <nalaginrut_>DerGuteMoritz: there's some work to do with the session, hmm...artanis is long term plan in my pocket <nalaginrut_>and Colt is the name of blog-engine based on Artanis, I wish it could be something like Habari *nalaginrut_ get the achievement that build Guile-2.0.9 & Guile-dbi & Artanis & many prerequisites on centOS-6.4 <nalaginrut_>DerGuteMoritz: you see, now sid is passed with query-string <dsmith-work>unknown_lamer: To get bobot++ to compile, I ended up s/(SCMFunc)/(void*)(SCMFunc)/ in source/Interp.C Not sure if that's the right thing. ***nalaginrut_ is now known as nalaginrut
*nalaginrut will run blog.scm with daemonize <dsmith-work>The compiler error message was "invalid conversion from ‘scm_unused_struct* (*)()’ to ‘void*’" <dsmith-work>You want a void*? I'll give you a void*! There. Hows that! <cky>C++ is a great idea! Well, when used with a Scheme implementation that is written in C++, that is. ;-) <DerGuteMoritz>nalaginrut: how is a query string safe as opposed to a cookie? <DerGuteMoritz>I'd even argue the other way around, session IDs in query strings can accidentally leak <DerGuteMoritz>e.g. when a user copies a URL with a session query string from the location bar and sends it to another party they will share the session <nalaginrut>DerGuteMoritz: yes, that's the problem I'm anxious <nalaginrut>DerGuteMoritz: well, all around of me saying cookie is not safe <ArneBab>can guile run scheme code passed via stdin? <nalaginrut>then told me use session, and you told me use session <ArneBab>the simplest case would be `cat code.scm | guile` <dsmith-work>ArneBab: You can, but you get all the banners and prompts. Simpler to just "guile code.scm" <ArneBab>dsmith-work: I can’t do that: I get the code from another program. My current workaround is to write it to a temporary file, but I don’t like that… *dsmith-work notes there are a *lot* of new faces in the crowd <nalaginrut>ArneBab: there's no such thing, maybe feature request ;-P <ArneBab>nalaginrut: echo "(display 1)" | guile -- seems to work <nalaginrut>ArneBab: yes it does, but seem contains some redundant info <ArneBab>where would I make the feature request? <cky>echo "(display 1)" | guile -s /dev/stdin <cky>DerGuteMoritz: Surely most Unix-like platforms provide /dev/stdin too? :-) <ArneBab>I need that to make wisp.py actually work as it should: <ArneBab>> newline" | ./wisp.py - | guile -s /dev/stdin <nalaginrut>ArneBab: echo "(display 213)" | guile -c '(primitive-eval (read))' <DerGuteMoritz>also I was gonna suggest /proc/self/fd/0 which I think really is a Linuxism <ArneBab>yes, primitive-eval seems to only take the first expression <nalaginrut>alright~but maybe we could add a argument for that <ArneBab>nalaginrut: I expected guile to take stdin when it gets the - argument <DerGuteMoritz>ArneBab: what if you wanted to read a file named - then though :-P :-) <ArneBab>DerGuteMoritz: then you would use -s - <dsmith-work>It shouldn't to hard to non display the banners and prompts in stdin is a pipe. Or not a tty. <ArneBab>essenitally making `guile -` a crossplatform way to say `guile -s /dev/stdin` <cky>I should actually try tweaking the Debian guile-2.0 packages and see if I can make it build 2.0.9. <ArneBab>which means this here allows using indentation sensitive multiline code with scheme directly from bash: <ArneBab>while IFS= read in ; do echo "$in" ; done | ./wisp.py - | guile -s /dev/stdin <ArneBab>that’s no real interactive commandline interface, but it’s much closer than I ever was :) <ijp>I have been having problems with running the tests on master, more specifically: threads.test is trying to murder my cpu <ijp>naturally, it only decides to do this when I am not using strace :) <ijp>taylanub: I strongly recommend against maintaining a "registry" in your bytestructures code <ijp>instead, it would be preferable to bind them to variables, and use the module system, since that is what it is there for <taylanub>ijp: Indeed, I've been thinking the same; there's no justification for my separate namespace. <taylanub>At least in the procedural implementation. I'm not sure about the syntactic one; how do I make my macros define and reference phase 1+ variables ?.. <taylanub>I can think of multiple dirty ways but not a clean one. Anyway, I'll polish the procedural one first. <taylanub>ijp: Another issue bothering me is, should we allow different non-compound descriptor-types, or only have a generic "simple" type whose instances hold 1) size, 2) scm->bytevector, 3) bytevector->scm ? <taylanub>With the separate types, you could do (pseudo-code): <taylanub>(define-bytestructure-descriptor-type int #:options (signed? size endianness) #:to-scm (lambda (int-descriptor-instance) (check options to decide what to do)) #:from-scm ...) <taylanub>(define uint8-descriptor (bytestructure-descriptor '(int #f 1 big-endian))) <taylanub>With the singular simple type that'd be: <taylanub>(define uint8-descriptor (bytestructure-descriptor #:size 1 #:to-scm bytevector-uint8-ref #:from-scm ...)) <mark_weaver>wingo: btw, I had a question about merging the ports stuff to master <mark_weaver>wingo: at first, I started to keep 'encoding_mode' in the private port structure, but I see that it's referenced in quite a few places in the tree now. <mark_weaver>I can't decide whether it should be public in 2.2. what do you think? <wingo>my instinct is to hide as much as possible <wingo>so that we can make changes more easily <mark_weaver>wingo: in master, I want to add source location tracking for identifiers <wingo>mark_weaver: that would be lovely :) <wingo>want to send a plan to the list? <mark_weaver>also, I wonder if it will be possible in master to eliminate some of silly limits we have, such as limits on the size of literal lists and vectors. <mark_weaver>well, just something to keep in the back of your mind <wingo>i think most of those limit-related issues are fixed with the rtl vm <wingo>but i am definitely thinking about it, yes :) <mark_weaver>I looked into raising those limits in stable-2.0, and found myself wanting a variant of the list opcode that let me specify the final cdr. <wingo>there is no list opcode in rtl, only cons <wingo>it should perform better, however <mark_weaver>okay. I wonder: with elf, can we avoid building the literals piece by piece, by rather let the dynamic linker link it all together? <wingo>well, you have to link things at runtime <wingo>but they are just relocations <wingo>they happen to be processed by guile instead of by ld.so <mark_weaver>right, that's what I meant by having the dynamic linker do it. <mark_weaver>so you reimplemented the elf dynamic linker in guile? <wingo>i think it does the thing you want it to do <wingo>pretty much -- both more and less <mark_weaver>very interesting. and this is all in master already? <mark_weaver>I really need to take a closer look at that branch :)