Topic for #qi-hardware is now Copyleft hardware - http://qi-hardware.com | hardware hackers join here to discuss Ben NanoNote, atben / atusb 802.15.4 wireless, and other community driven hw projects | public logging at http://en.qi-hardware.com/irclogs
dandon_ has joined #qi-hardware
dandon has quit [Ping timeout: 255 seconds]
dandon_ is now known as dandon
mth has quit [Ping timeout: 246 seconds]
dandon_ has joined #qi-hardware
dandon has quit [Ping timeout: 246 seconds]
dandon_ is now known as dandon
wej has quit [Ping timeout: 264 seconds]
wej has joined #qi-hardware
panda|x201 has quit [Ping timeout: 245 seconds]
wej has quit [Ping timeout: 264 seconds]
mth has joined #qi-hardware
panda|x201 has joined #qi-hardware
mth_ has joined #qi-hardware
mth has quit [Read error: Connection reset by peer]
emeb has quit [Quit: Leaving.]
emeb has joined #qi-hardware
Jurting_pc2_ has joined #qi-hardware
Jurting_pc2 has quit [Ping timeout: 245 seconds]
emeb has quit [Quit: Leaving.]
emeb has joined #qi-hardware
Jurting_pc2_ has quit [Quit: No Ping reply in 180 seconds.]
Jurting_pc2 has joined #qi-hardware
bzb has joined #qi-hardware
wolfspraul has quit [Quit: leaving]
wolfspraul has joined #qi-hardware
DocScrutinizer05 has quit [Disconnected by services]
DocScrutinizer05 has joined #qi-hardware
liuqi has quit [Ping timeout: 256 seconds]
liuqi has joined #qi-hardware
emeb has quit [Quit: Leaving.]
porchaso0 has joined #qi-hardware
porchao has quit [Ping timeout: 264 seconds]
panda|x201 has quit [Ping timeout: 245 seconds]
panda|x201 has joined #qi-hardware
porchaso0 has quit [Quit: Leaving...]
porchao has joined #qi-hardware
FrankBlues has quit [Remote host closed the connection]
LunaVorax has joined #qi-hardware
<LunaVorax> Hi
<wpwrak> hmm. seems that i've found a code generation bug in gcc :-( (cross-compiling for the ben)
<wpwrak> given a code fragment tricky = foo; if (blah) tricky = bar; is adds the equivalent of else tricky = tricky;
<wpwrak> unfortunately, "tricky" is a register (with volatile and all that) ...
mth_ is now known as mth
<wpwrak> ... PDFUNS, to be precise. and it very much resents this sort of treatment.
LunaVorax has quit [Ping timeout: 260 seconds]
jekhor has joined #qi-hardware
megha has joined #qi-hardware
LunaVorax has joined #qi-hardware
<whitequark> wpwrak: sounds like an optimizer gone wrong
<whitequark> I'm fairly sure that volatile semantics (apart from being inapplicable for I/O memory) forbids that
jluis has quit [Remote host closed the connection]
jluis has joined #qi-hardware
megha has quit [Ping timeout: 248 seconds]
megha has joined #qi-hardware
panda|x201 has quit [Ping timeout: 245 seconds]
jekhor has quit [Ping timeout: 256 seconds]
<larsc> wpwrak: can you paste the code?
megha has quit [Ping timeout: 244 seconds]
jekhor has joined #qi-hardware
xiangfu has joined #qi-hardware
dandon_ has joined #qi-hardware
dandon has quit [Ping timeout: 252 seconds]
dandon_ is now known as dandon
jekhor has quit [Ping timeout: 276 seconds]
<wpwrak> whitequark: yes, looks like the optimizer got confused. i think my code indicates things correctly. need to see if i may have been a bit overzealous with the volatile, though. (not that this would be an excuse, but it may have made life unnecessarily hard for the poor compiler.)
<wpwrak> but first the morning mails and some caffeine ...
megha has joined #qi-hardware
xiangfu has quit [Read error: Connection reset by peer]
urandom__ has joined #qi-hardware
xiangfu has joined #qi-hardware
xiangfu has quit [Remote host closed the connection]
Hoolxi has joined #qi-hardware
xiangfu has joined #qi-hardware
megha has quit [Quit: WeeChat 0.3.9.2]
megha has joined #qi-hardware
panda|x201 has joined #qi-hardware
kuribas has joined #qi-hardware
<wpwrak> i need a senility check. given this code fragment: http://pastebin.pl/72768
<wpwrak> if you compile it with gcc 4.6.3 or gcc 4.7.2, e.g., for amd64 or mipsel, gcc reads from *ptr. my understanding is that it's not supposed to do that. anyone disagrees ?
<wpwrak> btw, with llvm 3.0, i get the code i expect. in fact, llvm is a bit too zealous and treats "ptr" as volatile as well
<wpwrak> (compiling with -O9)
<Fallenou> hum it seems gcc should only write to ptr
<wpwrak> 2:1 against gcc's interpretation :) or 3:1 if we count llvm.
<larsc> there is probably a clause somewhere in the standard that permits this
<larsc> and gcc sticks to the standard and not to what is practical
<wpwrak> the standard is pretty fuzzy about "volatile"
<wpwrak> and gcc's documentation is more confusing than helpful there. http://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Volatiles.html
<wpwrak> particularly the memory barrier example is puzzling. it would seem that just making that pointer volatile ought to do the trick. yet ...
<larsc> I even get the problem without the first *ptr = 1;
<larsc> ah, no misread the generated cod
<larsc> e
<larsc> It's a bit strange anyway on ARM it generates "movne r2, #2; ldreq r2, [r3]; str r2, [r3]" while the shorter "movne r2, #2; strne r2, [r3]" would be correct
<wpwrak> yeah, it really really wants to do that read :)
<wpwrak> an obsessive-compulsive anti-optimization
<larsc> whitequark: ruby got almost 50% https://github.com/search?p=&q=path:.ssh/id_rsa&type=Repositories
Jurting_pc2 has quit [Read error: Connection reset by peer]
<wpwrak> grmbl. in 2010, this was a theoretical issue. seems that we've progressed beyond that. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44943
Jurting_pc2 has joined #qi-hardware
<whitequark> larsc: compare with total count of repositories by language
<whitequark> idiots are distributed roughly evenly ;)
<whitequark> larsc: what actually worries me is Puppet. because sysadmins gotta know it better.
<larsc> whitequark: turns out I copy pasted the link to fast, the path: filter doesn't seem to work
<larsc> it's just text somewhere in a readme file
<whitequark> larsc: the actual link has the majority in ruby too
<whitequark> larsc: btw I'm not even sure why does it has the same distribution or shows ruby at all. That stuff should be in dotfiles theoretically...
Openfree has joined #qi-hardware
Hoolxi has quit [Ping timeout: 264 seconds]
Openfree has quit [Remote host closed the connection]
bzb has quit [Quit: Leaving]
panda|x201 has quit [Ping timeout: 276 seconds]
xiangfu has quit [Read error: Connection reset by peer]
xiangfu has joined #qi-hardware
megha has quit [Quit: WeeChat 0.3.9.2]
emeb has joined #qi-hardware
Jurting_pc2 has quit [Ping timeout: 245 seconds]
kilae has joined #qi-hardware
jluis has quit [Ping timeout: 248 seconds]
rz2k has joined #qi-hardware
LunaVorax has quit [Ping timeout: 260 seconds]
LunaVorax has joined #qi-hardware
megha has joined #qi-hardware
xiangfu has quit [Remote host closed the connection]
LunaVorax has quit [Ping timeout: 260 seconds]
<qi-bot> [commit] Werner Almesberger: ubb-la/Makefile (CFLAGS): -O9 is currently unsafe; use -O1 (master) http://qi-hw.com/p/ben-blinkenlights/e1eea4f
<qi-bot> [commit] Werner Almesberger: ubb-patgen/Makefile (CFLAGS): -O9 is currently unsafe; use -O1 (master) http://qi-hw.com/p/ben-blinkenlights/00ef01a
<wpwrak> of course, now my delay measurements are probably off ...
LunaVorax has joined #qi-hardware
<larsc> can't you just work around the bug?
FrankBlues has joined #qi-hardware
<wpwrak> i could change the API. e.g., instead of PDFUNS = foo; it would become write_reg(PDFUNS, foo), etc.
<wpwrak> but i kinda like to keep those register accesses nice and simple. besides, a lot of other people are probably using quite similar things.
<wpwrak> so the work-around for now is to drop the optimization level
<wpwrak> (API change) or do things like #define PDFUNS(x) write_reg(__PDFUNS, x). a little less ugly, but still. also, there may be other registers outside the GPIO group that don't have nice *ptr = *ptr semantics either
<wpwrak> only that those might be even harder to spot
jekhor has joined #qi-hardware
bzb has joined #qi-hardware
jekhor has quit [Ping timeout: 248 seconds]
<wpwrak> hmm. still getting trouble despite the -O1 :-(
kilae has quit [Quit: ChatZilla 0.9.89 [Firefox 18.0.1/20130116073211]]
<qi-bot> [commit] Werner Almesberger: ubb-la/Makefile (CFLAGS): even -O1 isn't safe; use -O0 instead (master) http://qi-hw.com/p/ben-blinkenlights/bac21bf
* wpwrak hates compiler bugs
<larsc> hates bugs
<larsc> some can be amusing though
<wpwrak> especially those you find in other people's code :) (and even more so if what you do doesn't depend on their code)
<wpwrak> well, this one has quite interesting effects. what happens is that the bad accesses to PDFUNS mess up the keyboard. in ubb-la, this means that the "press key to abort" functionality i'm adding mis-fires. (and of course, the keyboard in general doesn't behave very well after that involuntary reconfiguration)
<wpwrak> i also saw this earlier in ubb-patgen, but didn't realize what it was. there, it caused Enter to repeat endlessly. that's why the invocation of ubb-patgen at the end of http://downloads.qi-hardware.com/people/werner/ubb/patgen/ubb-patgen-demo.jpg
<wpwrak> wasn't actually run (the waveform is from an earlier run)
<wpwrak> well, at least that's the theory. haven't verified yet whether this is really what happened there.
<qi-bot> [commit] Werner Almesberger: ubb-la/ubb-la.c: add command-line options, keyboard abort (master) http://qi-hw.com/p/ben-blinkenlights/62284fb
<qi-bot> [commit] Maarten ter Huurne: Changed text color of warnings from yellow to magenta (packages) http://qi-hw.com/p/gmenu2x/a18730e
<qi-bot> [commit] Maarten ter Huurne: Made GMenu2X::menu private (packages) http://qi-hw.com/p/gmenu2x/e4d78be
<qi-bot> [commit] Maarten ter Huurne: Ignore OPK files of which the name starts with a dot (packages) http://qi-hw.com/p/gmenu2x/90ec4b9
<qi-bot> [commit] Werner Almesberger: ubb-patgen/Makefile (CFLAGS): even -O1 isn't safe; use -O0 instead (master) http://qi-hw.com/p/ben-blinkenlights/fc4b8e7
<qi-bot> [commit] Werner Almesberger: ubb-la/ubb-la.c (do_buf): skip over the first 122 samples (master) http://qi-hw.com/p/ben-blinkenlights/4ce6866
<qi-bot> [commit] Werner Almesberger: ubb-la/README: brief description of ubb-la (master) http://qi-hw.com/p/ben-blinkenlights/0702675
LunaVorax has quit [Ping timeout: 260 seconds]
rz2k has quit []
kuribas has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]