sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
ylamarre has quit [Read error: Connection reset by peer]
ylamarre1 has joined #m-labs
<GitHub54> [artiq] whitequark pushed 1 new commit to new-py2llvm: http://git.io/vYmum
<GitHub54> artiq/new-py2llvm acb8810 whitequark: Add tests for lambdas and functions.
<cr1901_modern> oops, wrong channel
<GitHub156> [artiq] whitequark pushed 1 new commit to new-py2llvm: http://git.io/vYmzw
<GitHub156> artiq/new-py2llvm 9db199c whitequark: Handle closure effects appropriately in LocalAccessValidator.
cr1901_modern has quit [Remote host closed the connection]
<whitequark> argh, python slice syntax is COMPLEX
<whitequark> it does so many things at once
<whitequark> so many things can go wrong
ylamarre1 has quit [Ping timeout: 244 seconds]
<whitequark> like... one, two, three, four exception sites per [:]
cr1901_modern has joined #m-labs
<rjo> python slice syntax is the best thing for numerics since sliced bread!
<rjo> it is simply awesome. look at what you can do with it in numpy.
<rjo> but for APython i think you can drop most of it: bounds checks, negative indices and non 1-stepsize. and forget about extended indices (index by array)
<whitequark> well, i already almost implemented the first three
<whitequark> as for extended indices, these don't work on lists anyway
<rjo> for some things in numerics python slice syntax is is actually too simple. it would have been great it if beaties like numpy.einsum could have been done within the slice syntax alone.
<rjo> *beauties
<sb0> rjo, pyqtgraph can remember dock layout. every other saved item needs to be implemented manually one-by-one, of course.
<cr1901_modern> whitequark: How do you know there's 4+ different exceptions from ":" (I guess looking at the Python source code, but maybe it's documented?)
<whitequark> I looked at the code I generate for the slice.
<whitequark> How do I know it's correct? Obviously, that's because I wrote it.
<cr1901_modern> I thought throwing those exceptions was based on some behavior that Python mandated, not necessarily due to your implementation. But if I still misunderstand, I'll let the question go... not enough energy to parse explanation.
<whitequark> sure, it's based on what CPython does
<whitequark> there's no real spec. you can read the source but i prefer enumerating every possible case and poking the interpreter with it. it's faster
<cr1901_modern> Lol, certainly a valid way to get the answers you seek
<rjo> Qt has saveState() and saveGeometry() and QSettings which would also automatically save dock state and geometry but not for us since the QtDock* is pretty much bypassed by pyqtgraph dockarea.
<sb0> pyqtgraph has a similar function. but all other state (e.g. content of text entries) needs manual saving
<rjo> yes. but apart from geometry we would only need the state of the dynamic experiment pages' widgets.
<rjo> damn visual studio took 6 hours to install a simple update...
<sb0> plus the display (plot) settings
<rjo> ack.
<GitHub127> [artiq] whitequark pushed 2 new commits to new-py2llvm: http://git.io/vYYR3
<GitHub127> artiq/new-py2llvm 2b9ac34 whitequark: Verify LLVM module in compiler.textbench.jit.
<GitHub127> artiq/new-py2llvm 65121b4 whitequark: Rework internal logic of slices.
<whitequark> wtf
<whitequark> int(1.0) is 1 # TRue
<whitequark> round(1.4) is 1 # False
<GitHub164> [artiq] whitequark pushed 1 new commit to new-py2llvm: http://git.io/vYY0i
<GitHub164> artiq/new-py2llvm 20f5f82 whitequark: Make sure tests pass both on ARTIQ Python and CPython....
<whitequark> ok, EH is finally ext
<whitequark> *next
bentley` has quit [Ping timeout: 246 seconds]
ylamarre has joined #m-labs
ylamarre has quit [Ping timeout: 265 seconds]
bentley` has joined #m-labs
stekern has quit [Ping timeout: 244 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 244 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 244 seconds]
stekern has joined #m-labs
ohama has quit [Disconnected by services]
ohama has joined #m-labs
antgreen` has joined #m-labs
stekern has quit [Ping timeout: 240 seconds]
key2 has joined #m-labs
stekern has joined #m-labs
antgreen` has quit [Ping timeout: 252 seconds]
ylamarre has joined #m-labs
<sb0> why is such a basic thing a PITA again? http://comments.gmane.org/gmane.comp.lib.qt.general/37693
stekern has quit [Ping timeout: 244 seconds]
<whitequark> sb0: the way I would recommend solving it is looking whether the cursor is at the last column when you are adding text
<whitequark> and if it is, moving it to the last column after adding text
<sb0> it's a QTableView, but yes, I'm looking at doing that right now ...
<whitequark> (s/cursor at the last column/view position at the last row/ or something)
<sb0> I wish it would be built into Qt instead of e.g. this stupid "what's this" that no one uses
* whitequark shrugs
<whitequark> i don't think every three-line feature should be built into the public API and bloat it
<sb0> this one definitely should. many applications (and particularly open source ones) have irritating autoscroll behavior that fights against the user when data is added
ylamarre has quit [Quit: ylamarre]
<sb0> also it may be 3-line, but those 3 lines require digging into Qt and why, for example, there is a rowsAboutToBeRemoved callback but no rowsAboutToBeInserted
stekern has joined #m-labs
<sb0> this last point is pretty annoying
<whitequark> hm that's true I guess
<whitequark> didn't "trolltech" give you a hint :p
key2 has quit [Quit: Page closed]
kyak has quit [Ping timeout: 240 seconds]
<sb0> unlike the view, the model has both signals (note signal, not callback... another typical qt annoyance) so I guess I'll use that
<sb0> this is the GUI equivalent of making verilog simulations "work" by messing with = vs. <=
<whitequark> yeah, that's gross
<sb0> and all it does is implement the irritating behavior I mentioned
<whitequark> um
<whitequark> so to get rid of the gross behavior
<whitequark> do something like view->horizontalScrollBar()->value() == scrollBar->maximum()
<whitequark> before decding to scroll
<whitequark> verticalScrollBar maybe
<sb0> that timer hack seems unnecessary with the Qt I have
kyak has joined #m-labs
<sb0> maybe they fixed that
<sb0> done
<GitHub69> [artiq] sbourdeauducq pushed 4 new commits to master: http://git.io/vYGOJ
<GitHub69> artiq/master aa2acb9 Sebastien Bourdeauducq: gui: auto resize of table columns
<GitHub69> artiq/master 3a06e22 Sebastien Bourdeauducq: master: handle logging while scanning repository
<GitHub69> artiq/master 1a4028c Sebastien Bourdeauducq: gui: better log lookandfeel
<cr1901_modern> I wish one technical spec didn't contradict itself. JUST. ONE.
<whitequark> so, I plug in pipistrello
<whitequark> [335110.229198] usb 3-2: Device not responding to setup address.
<whitequark> oh
<whitequark> oh, it worked the second time
<whitequark> the FPGA gets pretty hot
<rjo> whitequark: yes. it needs a lot of current.
<sb0> whitequark, the pipistrello tends to use a lot of power which makes it unreliable when plugged directly on USB
<whitequark> wonderful
<sb0> self-powered USB hubs (especially those with charging features I guess) are more tolerant of that
<whitequark> my laptop has a charging port
<rjo> whitequark: that meth lab is one of several nice stories. should not surprise or disappoint you.
<sb0> the pipistrello won't work at all when connected directly to my tablet, but no problem via a hub
<rjo> charging port on laptops usually means that it is powered during sleep, not that you can draw lots of current.
<whitequark> yes. but I believe that on mine, the 2nd part is also true
<whitequark> when I short the regular port, the port turns off
<whitequark> when I short the charging port, laptop's PMIC turns it off
<whitequark> (what if the laptop died when i did that? well, very simple: then it is not a laptop that i consider worth keeping)
<whitequark> anyway, it seems to work reliably from the charging port
<whitequark> always detects as FTDI etc
<whitequark> rjo: haha. can't say i'm disappointed. hell, you can fund science with meth for all i know
<whitequark> though i certainly didn't expect that to happen a lot
travis-ci has joined #m-labs
<travis-ci> m-labs/artiq#321 (master - 5b1165f : Sebastien Bourdeauducq): The build passed.
travis-ci has left #m-labs [#m-labs]
balrog has quit [Remote host closed the connection]
cr1901_modern has left #m-labs [#m-labs]
<rjo> whitequark: think the flow of money is the other way around in that case ;)
<whitequark> ok so
<whitequark> how do i build something to run on pipistrello
<whitequark> nevermind, there are docs
<GitHub4> [artiq] jordens pushed 1 new commit to master: http://git.io/vYZGr
<GitHub4> artiq/master 6b0e120 Robert Jordens: wavesynth/Synthesizer: allow empty data
<whitequark> hm.
<whitequark> If(wishbone.cyc & wishbone.stb,
<whitequark> AttributeError: 'int' object has no attribute 'cyc'
<whitequark> okay, pulled everything and rebuilt
<whitequark> now or1k-gcc broke ._.
<whitequark> sb0: remind me, why do we even use or1k-gcc?
<whitequark> sb0: another question, why do we use *or1k-src*?
<whitequark> or1k was upstreamed almost a year ago
<whitequark> oh. oh, right, GNU tools aren't retargetable. i hate this garbage
travis-ci has joined #m-labs
<travis-ci> m-labs/artiq#322 (master - 6b0e120 : Robert Jordens): The build passed.
travis-ci has left #m-labs [#m-labs]
cr1901_modern has joined #m-labs
ylamarre has joined #m-labs
<whitequark> sb0: opinion: misoc should do out-of-tree builds
<whitequark> also yay i brought pipistrello up
<rjo> whitequark: yes. misoc needs to be cleaned up. remove source code/documentation/empty stubs/repeated code from the python modules and make the python stuff a module. and out-fo-tree builds.
<rjo> make the python stuff a package.
<rjo> and flatten the namespace. the imports from misoc look like java.
<cr1901_modern> On a possibly related note, I'm curious as to why mibuild was merged into migen
<cr1901_modern> (well I guess since it's a separate package, it is technically still is a separate project, giving it some thought)
<whitequark> hm
<rjo> why would you _not_ merge it? migen is predominantly used with mibuild and the other way around. and mibuild does not add further dependencies. it just frees you of keeong track of more packages and keeping them in sync.
<rjo> keeping
<whitequark> hm, the user_leds 2-4 do not work on pipistrello
<whitequark> 2-3
<whitequark> i wonder why
<cr1901_modern> rjo: My logic was: Migen: core language + simulation, mibuild: Provides synthesis, MiSoC: Uses Migen/mibuild to create a SoC framework
<cr1901_modern> Not saying it's *sound* logic, but it was my logic
ohama has quit [Ping timeout: 255 seconds]
ohama has joined #m-labs
<rjo> with that logic you would also suggest python splits itself into ~100 packages, one per stdlib component. that does not help. and there it is even worse: `telnetlib` has little to do with `fraction`.
<whitequark> some languages do this, e.g. rust
<rjo> yes. for python the fat stdlib has been a great advantage.
<whitequark> well, you need a functional package manager
<whitequark> python has what, three, none of which completely work?
balrog has joined #m-labs
<rjo> at least four package formats. that is a mess.
<cr1901_modern> rjo: Yes, all things being equal, I'd prefer a minimal stdlib to a big one. However, I've noticed that regardless of the language I try to only use the OS-/implementation-provided stdlib.
ylamarre has quit [Quit: ylamarre]
<whitequark> rjo: as far as i see
<whitequark> mor1kx does not have a debug unit
<whitequark> oh no found it