IRC channel logs

2013-10-28.log

back to list of logs

<cky>Anyway, for anyone interested, I just pushed my (ice-9 i18n) changes.
<cky>In the current documentation, in the Block Comments section, it says that (+ #| this is a #| nested |# block comment |# 2) evaluates to 3.
<cky>Either there's a missing 1 before the block comment, or the result should be 2.
<cky>git blame says it was civodul's commit. ;-)
<nalaginrut>morning guilers~
<gzg>nalaginrut: o/ You know, you got me interested in FPGAs more. :^)
<nalaginrut>gzg: I'm planing a ARM board for fake lisp-machine, which means an high optimized Scheme VM runs on a ARM board
<nalaginrut>I'm in Shenzhen, so I can design/produce such a board in very low cost ;-P
<nalaginrut>gzg: anyway, FPGA is on my list (if I can get a cheaper one)
<gzg>nalaginrut: If I go do a CS/EE, that would be a fun master's project. :^)
<nalaginrut>yeah~
<gzg>nalaginrut: What's you price-range?
<gzg>for a FPGA*
<nalaginrut>gzg: the proper board cost 400$, the cheaper can't hold lisp-machine
<nalaginrut>and exclude tax...
<gzg>nalaginrut: Link and/or name to the board in-question?
<nalaginrut>no mention the price of IDE, QuartusII cost 2999$ per year IIRC
<nalaginrut>gzg: IIRC it's SparkIV or something else
<gzg>nalaginrut: The "Stratix" series, by Altera?
<nalaginrut>gzg: well, I haven't researched it, so I don't know clearly, since my next plan is a fake-lisp-machine runs on ARM, real-lisp-machine on FPGA is the next to next
<nalaginrut>alas, due to the price...
<gzg>Is implementing a practical scheme-machine really not do-able on a mid-range board? I was thinking about at least implementing a general implementation on one -- that's obviously a much simpler project/goal though. :^)
<gzg>I mean a basic R7RS small implementation right on the metal, not a whole OS.
<gzg>On my end.*
<nalaginrut>gzg: there's close design, a dedicated VM bytecode design based on regular CPU, it'd be fast in principle
<nalaginrut>I mean closer
<nalaginrut>not closed
<nalaginrut>but real lisp-machine is better since it's definitely fast than C+asm, in principle
<gzg>nalaginrut: Well if and/or when you start your project, please pimp it in various places -- I'd love to hear where/how it goes. :^)
<nalaginrut>gzg: you could by the fake-lisp-machine board when it's out, no more than 15$, maybe higher for abroad, but our plan is 'vary low cost'
<nalaginrut>s/vary/very
<nalaginrut>s/by/buy
<nalaginrut>BTW, I've started yesterday
<gzg>nalaginrut: Very cool; Any place I should follow yet, to keep up to date on the project?
<nalaginrut>not yet, it's only for inner community discussion yet, when the chips is decided we'll raise the topic in our mail-list, but it's for Chinese
<nalaginrut>maybe you can add hack42.com into your fav, and waiting
<nalaginrut>sorry but it's Chinese
<gzg>nalaginrut: Will the project itself and documentation, be in Chinese too?
<nalaginrut>gzg: no, it's a global project, only raised by Chinese community, so there'd be English docs
<nalaginrut>and for completely-opened purpose, we have to choose the hardware very carefully
<nalaginrut>plus considering price
<nalaginrut>powerful hardware is very hard to make it fully-opened
<nalaginrut>like RaspberryPI
<gzg>Which, ironically -- isn't fully freed. :^P
<gzg>
<nalaginrut>yup
<nalaginrut>and the chip is dedicated to RaspberryPI, you can't buy it on your own, IIRC
<gzg>nalaginrut: Well, I'll keep a look out -- I'm going to finish up some things before I head to bed, peace. o/
<gzg>AFK.
<nalaginrut>see ya
<nalaginrut>speak to the board, there's a joke yesterday. The PCB machine only support standard format, and there's no firmware source code, then we have to write sed script. I recalled RMS raised Free-software movement when he encountered such situation...
<nalaginrut>s/standard/un-standard
<civodul>Hello Guilers!
<nalaginrut>heya
<wingo>heya civodul :)
*wingo has been trying to raise frankenstein^Hthe RTL VM to life
<wingo>I mostly have it -- compiled eval seems to work, but there is some little problem i need to find
<civodul>hey wingo!
<wingo>but it's always a series of little problems :)
<civodul>i can imagine :-)
<civodul>can be pretty hard to debug i suppose
<wingo>yes
<wingo>but getting close
<nalaginrut>ooooops
<civodul>that's good news
<nalaginrut>any faster in compiling time? ;-P
<wingo>haha, right now it's getting slower :/
<wingo>eval is much faster
<wingo>maybe 2x as fast
<nalaginrut>yeah~
<wingo>but the compiler is bigger and not yet optimized
<nalaginrut>heh
<wingo>and it uses more macros than the old compiler
<civodul>eval may be a good benchmark
<wingo>so it takes longer to macroexpand
<wingo>which makes bootstrap time terrible
<wingo>newer code assumes the existence of peval, also
<wingo>which is the case after the compiler is compiled
<wingo>but it makes the naive expansion slow to interpret
<wingo>civodul: did you see that i did the two-dimensional environment thing in master's evaluator?
<civodul>ooh no (i was away last week), but that's a good thing
<civodul>so that's why it's twice as fast i guess?
<wingo>i tried it with 2.0 also
<wingo>but it was a lose for 2.0
<civodul>oh
<wingo>because the loop to traverse the rib chain is compiled badly
<civodul>i remember trying that in CEVAL many years ago, and giving up ;-)
<wingo>lots of local-ref/local-sets
<civodul>ok
<wingo>the format of an environment is now a vector
<wingo>slot 0 is the next rib
<wingo>slots 1 to N are the locals
<wingo>seems to work ok
<civodul>that's definitely an improvement
<wingo>yes
<wingo>especially in master where the memory overhead of a vector is just one word
<wingo>in stable-2.0 there's an extra word associated with weak vector data
<wingo>whereas in master weak vectors don't share an implementation with vectors
<civodul>ah right
<civodul>yes
<civodul>these are all the little bonuses that we tend to forget, but which are appreciable :-)
<wingo>yep :)
*taylanub wonders what bipt is up to ...
<mark_weaver>sneek: logs?
<amgarching>Hi. Is this an official syntax for keywords or a special case for define-module? (define-module (ice-9 getopt-long) :use-module ((ice-9 common-list) :select (some remove-if-not)) ...)
<amgarching>oh, I see. It has been changed in 2.0
<civodul>amgarching: '#:' is the preferred form now
<civodul>though i think ':' is still accepted in 'define-module'
<ijp>amgarching: you can set the reader option, but it might cause breakage
<amgarching>I'd better stick with official syntax. Though #: is visually somewhat heavy.
<mark_weaver>amgarching: I wouldn't recommend setting the reader option, because that's global to the entire guile session, and as ijp said may break something else that assumes :foo is a symbol.
<amgarching>I just had a puzzle for which I still dont have an explanation. One of the custom imported modules had (unless ...) form in the body but no (use-modules (guile compat)) in which I define "unless" for 1.8 (pre-2.0 dont have when/unless).
<amgarching>The error taking about "undefined unless variable" was firing at a very unrelated moment, namely when I called (getopt-long argv options) and after both arguments were evaluated. Does Guile 1.8 evaluate anything asyncronousely?
<amgarching>*error talking
<amgarching>I quote '(getopt-long (pk argv) (pk options)) and the error is gone. I remove the quote it is again there.
<amgarching>Took me some time to find that (unless ...) form without my workaround with (use-modules (guile compat)) in a completely unrelated module.
<dsmith-work>Howdy Guilers.
<wingo>mooo
<ijp>baaa
<davexunit>apt-get wingo
<wingo>hehe, reverse cowsay
*wingo crosses fingers, hopes to boot guile 2.2 today
*add^_ crosses fingers too
*ijp uncrosses fingers, recrosses them, and then crosses teh crosses
<add^_>ow ow ow
*wingo puts his pants on backwards
*davexunit does a handstand
<davexunit>I think we're ready
<wingo>:)
<ijp>hold on, just let me juggle a 3 club burkes barrage to be sure
<davexunit>guile 2.2 is so exciting.
<wingo>i really dig writing code assuming that i have a powerful macro expander available, and a good inliner
<wingo>that is sweet
<wingo>but it doesn't make for fast bootstraps
<wingo>currently taking 10 minutes to macroexpand everything after the evaluator is compiled
<wingo>surely i can reduce that but still it's a tricky baseline to have :/
<wingo>compilation itself doesn't take so long, amusingly
<wingo>after compiling eval.go, compiling psyntax-pp.go takes around 11 minutes to macroexpand everything, then 5 to compile
<wingo>just to compile psyntax.scm
<wingo>but hey, after that things get better, but then i run into some kind of prompt/abort weirdness
<wingo>i am hoping that once i fix that i'm done
<TaylanUB>I heard the plan for 2.4 is out, where can one find this ?
<wingo>i don't know that there is a 2.4 plan
<wingo>not currently anyway
<wingo>maybe someone has a plan ;)
<TaylanUB>Oh OK, I must've misunderstood it.
<ijp>I have a cunning plan
<wingo>if it were up to me, i would say native compilation would be 3.0, and no 2.4
<wingo>you schemer you
<ijp>sorry, forgot to /nick baldrick first
<bubu>hi, (parallel ...) seems pretty awesome, but i had difficulties on how to use it. In the end I created a list of all my parameters (indexes) and used par-map, but there must an easier way to parallelize a "for-like" loop ?
<dsmith-work>wingo: Ya. I noticed that the peval test fails, and the r5rs pitfalls test seems to run forever. With lots of cpu.
<wingo>dsmith-work: i haven't noticed that fwiw; there have been many occasions where a make clean is needed, fwiw
<dsmith-work>wingo: I alwsy start from gti clean -dxf
<ijp>bubu: first off, are you sure it is worth parallelising?
<bubu>ijp, yes it is
<ijp>par-map is slightly more appropriate than parallel
<bubu>just computing a function and changing the index "i"
<bubu>by i+1 etc...
<bubu>each iteration takes ~1 min
<ijp>(par-map (lambda (i) ...) (iota n))
<bubu>and I have around 2 thousand to do
<bubu>doh
<bubu>forgot about iota
<bubu>I first computed a list with all "i" indexes
<bubu>this is gonna save me 2 lines, nice
<bubu>but otherwise it's awesomely easy to use, i really appreciate
<bubu>(the setup of parallel work)
<ijp>iota doesn't have the most memorable name (it came from apl)
<bubu>my point that my list of index can be pretty long, just to know if there might be a better way to feed par-map
<ijp>well, it'll really be lost in the noise compared to the rest of your code
<ijp>maybe a par-for can be justified
<ijp>(par-for silliness the-course)
<bubu>par-for might be slight similar to what people are usually used with openmp
<bubu>(is it already implemented ?)
<bubu>i don't see it in the doc
<ijp>no, I was being silly
<ijp>reread the example
<bubu>ok
<ijp>"par for the course" is an english idiom (taken from golf) meaning "about what you'd expect"
<TaylanUB>Heh, TIL
<add^_>Bored, I think I'm gonna read my book about λ-calculus instead..
<add^_>Or I can get stuck not too far into the book, great.
<ijp>perhaps you made the mistake of starting at chapter 1
<add^_>Shouldn't I?
<add^_>If so, then yes, I made that mistake.
<ijp>no, you start with the introduction, which tells you to start at chapter 2
<add^_>Uh
<add^_>Hm
<add^_>Well, I should have reread the introduction then
<add^_>Because I didn't remember that :-)
<add^_>Thanks.
<ijp>there is even a diagram!
<add^_>hah
<add^_>I'm not sure how to understand that though ;-)
<add^_>Oh well, good point.
<ijp>I forget when I learned this lesson about academic books, but it was a while ago
<add^_>Hm?
<ijp>add^_: never blindly assume chapter 1 is where to start
<add^_>Ah
<add^_>Right
<add^_>:-)
<ijp>I think it might have been fellers book on probability
<ijp>the discrete one, not the continuous one
<add^_>:-)
*wingo finally has a handle on the prompt miscompilation thing
<mark_weaver>yay :)
<wingo>tomorrow for the fix tho :)
<dsmith-work>Yey!