#qi-hardware IRC log for Tuesday, 2013-01-15

qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: clean up pattern generation and boundaries (master) http://qi-hw.com/p/ben-blinkenlights/fa8b5b601:19
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: describe the pattern transfer logic (master) http://qi-hw.com/p/ben-blinkenlights/e5cb1c901:19
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c (dma_pattern): move pattern parser to parse_pattern (master) http://qi-hw.com/p/ben-blinkenlights/3febc9001:19
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: DMA has mystery glitches. Use PIO for now. (master) http://qi-hw.com/p/ben-blinkenlights/908b06301:19
wpwraklarsc: have you ever seen data glitches when DMA'ing to the MMC controller ? all is well when i use PIO, but DMA acts up every once in a while. happens under mlockall, with interrupts off, etc.01:21
wpwrakthe only thing that seems to help is a strategically placed printf. sleeping at the same spot doesn't do the trick :(01:22
wpwraklarsc: (all this is on the Ben)01:22
larscthe kernel driver only uses pio01:23
wpwrakoh :) thought you'd use DMA01:23
wpwrakthe funny thing is that UBB-VGA doesn't have any visible issues. of course, it could be that repetition makes the problem go away.01:25
wpwrakah. maybe i've just answered my own question :) let's flush that CPU cache ....01:25
wpwrak1380 tests passed and counting. seems that we have a winner02:25
qi-bot[commit] Werner Almesberger: ubb-patgen/: flush dcache and write buffer before doing DMA (master) http://qi-hw.com/p/ben-blinkenlights/b6ee67202:34
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: DMA works now. Get rid of the PIO option. (master) http://qi-hw.com/p/ben-blinkenlights/c6306ff02:34
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c (dma_pattern): mlockall (before address translation and DMA) (master) http://qi-hw.com/p/ben-blinkenlights/dad973902:34
wpwrakfirst failure after 6675 tests. and that was the scope mis-triggering (the signal is somewhat marginal in that setup), not the pattern generator getting things wrong04:55
LunaVoraxHi!07:47
wpwrakben nanonote mmc bus clock frequencies cheat sheet: http://downloads.qi-hardware.com/people/werner/ubb/ben-mmc-clk.png19:18
zearwpwrak, how is NanoNote doing nowadays?19:57
wpwrakzear: hmm, the community seems fairly dormant. about the only somewhat regular activity are openwrt updates.19:58
zeari see19:58
qi-bot[commit] Werner Almesberger:  ubb-patgen/ubb-patgen.c: clean up section structure (master) http://qi-hw.com/p/ben-blinkenlights/a5fbf5520:11
qi-bot[commit] Werner Almesberger: libubb/mmcclk.c (mmcclk_start): also reset the MMC controller (master) http://qi-hw.com/p/ben-blinkenlights/72f212520:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: clean up usage (-c selects clkout only; -C to monitor) (master) http://qi-hw.com/p/ben-blinkenlights/6e6767120:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: remove pattern frequency and use -f for bus clock (master) http://qi-hw.com/p/ben-blinkenlights/111115620:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: "ubb-patgen -f FREQ" calculates the frequency (master) http://qi-hw.com/p/ben-blinkenlights/eedb0f020:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: option -q when dumping frequencies suppressed details (master) http://qi-hw.com/p/ben-blinkenlights/1aedd4b20:11
qi-bot[commit] Werner Almesberger: ubb-patgen/table/: generate a PNG with a table of MMC bus clock frequencies (master) http://qi-hw.com/p/ben-blinkenlights/3c9443220:11
qi-bot[commit] Werner Almesberger: ubb-patgen/table/mktab: make the long vertical axes thinner (master) http://qi-hw.com/p/ben-blinkenlights/653910b20:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: accept file (- for standard input) as pattern source (master) http://qi-hw.com/p/ben-blinkenlights/69aba6a20:11
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: new option -p to force interpretation as pattern (master) http://qi-hw.com/p/ben-blinkenlights/d60ef1420:11
whitequarkwpwrak: neat graph. how did you compose it?20:30
wpwrakhttp://projects.qi-hardware.com/index.php/p/ben-blinkenlights/source/tree/master/ubb-patgen/table/20:33
wpwrakand then ./mktab FREQ | gnuplot -persist >ben-mmc-clk.png20:33
wpwrakno ruby, sorry :)20:33
wpwrakFREQ comes from running  ubb-patgen -q  on the ben (it queries some system settings to determine the available frequencies, that's why it has to run on the ben itself)20:35
whitequarkI might use that sometimes, thanks20:36
wpwrakgood :)20:36
whitequark(no ruby) please, don't portrait me more as a zealot than I actually am ;)20:36
wpwrakmaybe you have to work on your PR ;-)20:37
whitequarkwell, as a guy writing an implementation of Ruby dialect I sorta should prefer it to other languages, no? :)20:38
wpwrakthat would depend on how well things are going :)20:39
whitequarkmaybe I should just go and write a helloworld for ben now...20:39
whitequarkgiven that I don't even need to recompile LLVM, shouldn't be that hard20:40
wpwrakthat's usually a good start :)20:40
larscwhy is it that a programming language has either sane semantics or good practicality?21:07
whitequarklarsc: could you elaborate?21:07
larscnot sure ;)21:09
wpwrakwould C, having both, be the exception to larsc's rule ? :)21:10
whitequarkif only it actually had at least one of them ;)21:10
wpwrakit somehow doesn't surprise me that you'd say that :)21:11
whitequarkwell, that's because I think so?21:11
whitequarka language which does not by default have even opt-in safe string manipulation functions isn't practical by any means; and the problem with semantics is that fundamentally every datatype in C is a leaky abstraction21:12
larscI just sometimes get the feeling that for languages with sane semantics people where focused so much on the semantics they forgot about making the language actually usable in everyday programming21:12
wpwrakwhitequark: C forces the programmer to think about what they're doing a bit earlier than other languages do21:13
wpwrakwhitequark: that's how C developers get more exercise in thinking ;-)21:13
whitequarkwpwrak: ... about things they in 90% cases don't and shouldn't care about21:14
whitequarkregardless, I'm not even referring to that21:14
wpwraktrolling is fun :)21:14
whitequarkC's semantics is very poorly defined. for example, both signed and unsigned overflow is an UB, because we totally work on non-two's-complement machines21:15
wpwraklarsc: and yes, the fear of imperfection often drives them to strange omissions21:15
whitequarkand there's something similarly crazy going on with floats21:16
larsc'loops are evil, you must always use recursion'21:16
whitequarkand there's all the ways you cannot define a bitfield in a portable way, or even specify alognment21:16
wpwraklarsc: until, if the language catches on regardless, the pragmatists roll in and add generally particularly ugly hacks that overcome all those omissions again21:16
whitequarklarsc: the part about loops is probably one of the most misunderstood concepts in FP21:16
whitequarkfirst, to my knowledge, it was an academic language (Scheme) which first opted to omit loop syntax entirely21:17
whitequarka language which was explicitly designed for teaching students and not doing real work in21:17
whitequarkCL has loops, for example21:17
whitequarksecond, it is quite natural in Lisp, where a rule of thumb is that you should shape your code like your data structure looks like, and data structures are generally recursive [linked lists]21:18
wpwraklithp hath (prog ...) complethe withth gotho :)21:19
wpwrakwhich i think proves my point of the fix being uglier than the imperfection whose avoidance the fix aims to fix21:20
whitequarkwpwrak: scheme has continuations, which are generalized *and* safe form of goto's21:20
whitequarkthis is the primitive which can be used to make exceptions and fibers, for example21:20
whitequarkso you fail at trolling ;)21:20
wpwrakscheme is very very new stuff. not a good example to start explaining the evolution of functional languages21:21
whitequark(very very new) 1975?21:21
whitequarkC is from 1972 ;)21:22
wpwrakLISP started in 1958 ...21:22
whitequarkwell, so? I demonstrated how a functional language doesn't have ugly hacks over strange omissions21:23
urandom__larsc: well there is always lua, practicality und (relative) sane semantics21:23
wpwrakmaybe the makers of scheme thought that, now that lisp was about to reach the age of consent, they really ought to make something new that's pure again21:23
whitequarkrofl21:23
whitequarkthat's all I would say21:24
urandom__well one can just use CL if there is need to get shit done ;P , never understood whats cool about scheme21:24
wpwrak(makes me wonder what languages came out around 1990, when scheme reached that age. hmm, haskell ...)21:25
wpwraki always wondered what the "ask" was doing in that otherwise quite self-explaining name. but maybe it's self-referential and you're supposed to ask about the "ask".21:26
whitequarkwpwrak: please proceed to completely miss the reason of haskell's creation21:26
wpwrakto preserve the proud tradition of INTERCAL ? :)21:27
whitequarkto be able to precisely represent side effects in the type system21:28
whitequarkwhich is a neat thing theoretically, but is a royal pain in the ass to write code in21:28
wpwrakhence my comment about "haskell" minus "ask" being rather descriptive :)21:28
wpwrakregarding "side effects in the type system" ... makes you realize how small the hamming-distance to a turing machine really is21:29
whitequarknot sure what do you mean by the part about turing machine21:30
wpwrakclear to bits and you have s/type/tape/21:30
wpwraks/to/two/21:30
Action: whitequark shrugs21:32
whitequarkmakes me wonder who of us is a zealot21:32
wpwrak"side effects in the tape system". doesn't that sound like a pretty good description of a turing machine ?21:32
larscthere are no side effects in the tape system ;)21:34
whitequarklarsc: have you seen languages of the ML family?21:36
whitequarkOCaml/SML21:36
larscyes21:36
larscactually taking a course on sml at this very moment21:37
whitequarklarsc: oh interesting. could you share a link? I'm going to learn it (or OCaml maybe) too.21:38
larscwhitequark: https://class.coursera.org/proglang-2012-001/21:38
larscit's a course on programming langues in general, but starts with sml21:38
larscand later on ruby21:39
whitequarkoh, two more people recommended this to me today21:39
whitequarkis this a good course?21:39
larscso far, so good21:39
larscbut it just started this week21:39
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: new option -m MASK to choose which DATx lines to use (master) http://qi-hw.com/p/ben-blinkenlights/1c76cab21:41
qi-bot[commit] Werner Almesberger: libubb/mmcclk.c (BUS_LIMIT_MHZ): explain the 56 MHz limit (master) http://qi-hw.com/p/ben-blinkenlights/10b0dea21:41
qi-bot[commit] Werner Almesberger: ubb-patgen/ubb-patgen.c: new option -t 0|1 to start pattern on TRIGGER/CLK (master) http://qi-hw.com/p/ben-blinkenlights/0bb711e21:41
whitequarkum emacs21:41
larschehe21:42
whitequarkmeh, sublimetext2 has this syntax either21:44
larscandalso is a keyword...21:44
whitequark"fun" is a keyword either21:46
larsc fun is ok21:46
whitequarkit's fun!21:46
larscthe other one is 'orelse'21:50
larscI guess they wanted to make it more explicit that the 2nd expression is only if the first was true(for and)/false(for or)21:51
wpwrakas in "either you obey or else ..." ?21:53
whitequarklarsc: is only evaluated?21:57
larscyea21:57
larscI wish I had had the speedup feature which coursera offers for lectures, for the lectures I visited when I was still at university ;)21:59
whitequarklarsc: so you've graduated?22:00
larsclong time ago22:01
whitequarkif not a secret, what are you doing now?22:02
larscworking ;)22:04
larscwhitequark: https://github.com/analogdevicesinc22:06
qi-bot[commit] Werner Almesberger: ubb-patgen/README: brief description how ubb-patgen works (master) http://qi-hw.com/p/ben-blinkenlights/d5ea5d922:35
whitequarkhuh. found a bug in llvm. got an immediate response from the person responsible for it...23:10
larscare you writing a frontend for llvm?23:25
--- Wed Jan 16 201300:00

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!