Guest54892 has quit [Quit: This computer has gone to sleep]
Mon_ has joined #m-labs
Mon_ is now known as Guest61743
Guest61743 has quit [Client Quit]
Mon_1 has joined #m-labs
Mon_1 has quit [Client Quit]
<_florent_>
cyrozap>
<_florent_>
cyrozap: great for the dram, what was the issue?
<cr1901_modern>
sb0: Are you there?
<cr1901_modern>
Nevermind (for now). I think I'm good
Mon_ has joined #m-labs
Mon_ is now known as Guest62194
acathla has quit [Quit: Coyote finally caught me]
<sb0>
cr1901_modern, yup
<cr1901_modern>
How familiar are you quamash?
<cr1901_modern>
with* quamash
acathla has joined #m-labs
<cr1901_modern>
I ask b/c I think I'll have to deal with async, am curious how it works; but I'm misunderstanding something important about Python asyncio
<cr1901_modern>
sb0: ping^
<sb0>
cr1901_modern, quite familiar. but I don't think your widget touch anything asyncio related.
<sb0>
the qt callbacks should be enough
<cr1901_modern>
Well may I ask anyway for the sake of completeness/alleviate misunderstandings?
<cr1901_modern>
According to Python's docs, asyncio is for single threaded apps, and according to Qt's docs, Application.exec blocks
<cr1901_modern>
so why does artiq_gui have multiple calls to run_until_complete()?
<sb0>
not only artiq_gui, other tools such as artiq_master also do those multiple calls
<sb0>
that has nothing to do with quamash, and is equivalent to using an asyncio task that yields each thing that is in run_until_complete()
<sb0>
it's written that way because I have to initialize a bunch of things, and it makes it easier to use atexit
<sb0>
otherwise, you have to nest a ton of try/finally block, or rewrite an asyncio-friendly atexit module
<cr1901_modern>
the last run_until_complete is the only one that actually ensures that every other function registered completes?
<cr1901_modern>
(in artiq_gui's case, loop.run_until_complete(win.exit_request.wait()))
<sb0>
it's like run_forever(), except that it handles application exit at the user request properly
<sb0>
exit_request is a asyncio event that will complete when the user closes the main window, and make run_until_complete return
<sb0>
and then atexit does the cleanup (which includes running more asyncio tasks) when the program exits
<sb0>
I'm not sure how quamash hacks Qt so that this works, and I hoped it would not be my problem; unfortunately things like UDP on windows are broken
<cr1901_modern>
alright. Was a bit confused. Incidentally, quamash's run_until_complete DOES end up calling app.exec_() which AFAIK blocks until the application exits
<cr1901_modern>
so unless exec_() internally yields somehow, not sure why the first loop_until_complete's return doesn't exit the whole application lol
<sb0>
looking at the code I'd guess they figured out a way to make exec_() return without destroying the application
<sb0>
btw, your widget should be usable without quamash
<cr1901_modern>
Noted.
<sb0>
if you are making any asyncio calls, you are probably on the wrong track
Guest62194 has quit [Quit: This computer has gone to sleep]
<GitHub43>
[artiq] sbourdeauducq pushed 1 new commit to master: http://git.io/v8vQP
<GitHub43>
artiq/master a7c9c95 Sebastien Bourdeauducq: gui/explorer: support requesting termination of all instances
mindrunner has joined #m-labs
mindrunner has quit [Read error: Connection reset by peer]
mindrunner has quit [Read error: Connection reset by peer]
mindrunner has joined #m-labs
Mon_ has joined #m-labs
Mon_ is now known as Guest63082
Guest63082 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Client Quit]
Mon_1 has joined #m-labs
<cr1901_modern>
btw, sb0: consistent error in Windows: "Cancelling an overlapped future failed." When exiting artiq (or any application using quamash, for that matter)
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_ has joined #m-labs
Mon_ is now known as Guest45605
Guest45605 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
robtaylor has joined #m-labs
Mon_1 has quit [Client Quit]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_ has joined #m-labs
Mon_ is now known as Guest49490
mindrunner has quit [Ping timeout: 244 seconds]
felix_ has quit [Ping timeout: 246 seconds]
felix_ has joined #m-labs
mindrunner has joined #m-labs
Guest49490 has quit [Quit: This computer has gone to sleep]
Mon_ has joined #m-labs
Mon_ is now known as Guest60468
Guest60468 has quit [Quit: This computer has gone to sleep]
ylamarre has joined #m-labs
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_ has joined #m-labs
Mon_ is now known as Guest73344
Guest73344 has quit [Quit: This computer has gone to sleep]
attie_ has joined #m-labs
kristian1aul has joined #m-labs
kmehall_ has joined #m-labs
ylamarre has quit [Quit: ylamarre]
kmehall has quit [*.net *.split]
attie has quit [*.net *.split]
kristianpaul has quit [*.net *.split]
stekern has quit [Ping timeout: 255 seconds]
stekern has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
mumptai has joined #m-labs
<cyrozap>
_florent_: I changed the clock back to 83+1/3 MHz and despite 1 timing error, everything seems to be working. I used the same settings as the Pipistrello, but with f0=100MHz and p=8. What's weird is that it works despite the timing error.
<cyrozap>
_florent_: Those settings change the DDR clock to 166+2/3 MHz; with a 50 MHz core clock it was running at 100 MHz.
mumptai has quit [Quit: Verlassend]
aeris has quit [Read error: Connection reset by peer]
aeris has joined #m-labs
Mon_ has joined #m-labs
Mon_ is now known as Guest28940
Guest28940 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]
Mon_1 has joined #m-labs
Mon_1 has quit [Quit: This computer has gone to sleep]