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
fengling has joined #m-labs
rohitksingh_work has joined #m-labs
digshadow has quit [Ping timeout: 264 seconds]
digshadow has joined #m-labs
<whitequark> sb0: so, hmm
<whitequark> I can write the Rust session such that it doesn't keep the entire *input* packet in RAM
<whitequark> but you send the length initially, so it has to keep the entire *output* packet in RAM regardless
<sb0> okay
<whitequark> this seems a bit silly.
<whitequark> we could modify the protocol (in both ways, i guess) so it could transfer with chunks
<whitequark> 0x80000000|length ~ more chunks to follow
<whitequark> in both directions*
<sb0> what's the overhead with that?
<whitequark> well, you could send 64k or 1M chunks or something
<sb0> will it actually make things better or just fragment data into lots of small IP packets?
<whitequark> in which case it would be exactlyequivalent to the current scheme
<whitequark> no, making chunks smaller than IP packets would be pointless
<whitequark> counterproductive, even
fengling has quit [Ping timeout: 240 seconds]
<sb0> ok
<sb0> can you look into #550 first as this is user-facing?
fengling has joined #m-labs
<whitequark> sb0: btw, moninj still uses udp
<sb0> yes, that should change, as mentioned inmy
<sb0> email from july 15
<whitequark> ah I see
<sb0> and to keep everything in the device_db, i suppose the moninj client (GUI) will have to tell the core device what channels it wants to monitor and how
<whitequark> sb0: did you fix the problem with rtio analyzer where it would drop odd frames or something like that?
<whitequark> because the runtime is trying to output \x74 \x74 \x6c \x31 \x32 \x1e \x69 \x20 \x39 \x39 \x0a \x1d
<whitequark> which has all the necessary delimiters
<sb0> yes, this should be fixed
<sb0> can you reproduce the problem on the board? maybe he just has some old gateware...
<whitequark> i can reproduce it on the lab kc705
<whitequark> if I add a symbol to any of the fields, you get a frame shift
<whitequark> this particular combination of strings miraculously doesn't result in a shift but it eats the delimiters...
<whitequark> but anyway
<whitequark> 649f3b9094d97344be442ce9df10da7523d5b426
<whitequark> you reverted the workaround for coreanalyzer bug in that commit
<sb0> well yes, there should be no such bug anymore, this isn't a full workaround anyway
<whitequark> the workaround doesn't help this time, so it is a different bug
digshadow has quit [Read error: Connection reset by peer]
<whitequark> sb0: will you look into it?
<sb0> whitequark, can you precisely characterize the gateware problem?
<whitequark> sb0: it appears to drop every 5th character
<whitequark> let me check this again
<sb0> the gateware doesn't know about characters
<GitHub30> [artiq] sbourdeauducq pushed 1 new commit to master: https://git.io/vicIt
<GitHub30> artiq/master a7dd356 Sebastien Bourdeauducq: rtio/phy/ttl: support 'set sensitivity and sample' command (#218)
<sb0> whitequark, if I have a global "foo = 2" which is constant, and then do "rtio_output(...foo...)", the compiler generates a memory access, doesn't it?
<bb-m-labs> build #18 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/18
<bb-m-labs> build #928 of artiq is complete: Failure [failed] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/928 blamelist: Sebastien Bourdeauducq <sb@m-labs.hk>
<sb0> who took the "(status & RTIO_I_STATUS_OVERFLOW)" and "(status & RTIO_I_STATUS_EMPTY)" tests out of the loop in rtio_input_timestamp()?
<sb0> the RTIO core is designed for the runtime to immediately proceed when status==0, here, you are testing for status==0 and then for RTIO_I_STATUS_OVERFLOW and RTIO_I_STATUS_EMPTY again
Kaifeng has joined #m-labs
<whitequark> sb0: re "foo = 2": depends on how you do it
<whitequark> if it's a normal python global (not defined inside kernel) then no
<whitequark> it will be inserted inline
<whitequark> re tests: no idea. not me
<sb0> whitequark, are you using the kc705? why did ping fail?
<whitequark> sb0: I forgot to kill a script
<GitHub140> [artiq] sbourdeauducq pushed 1 new commit to master: https://git.io/vic3D
<GitHub140> artiq/master 486fe97 Sebastien Bourdeauducq: ttl: add level-based APIs (#218)
Kaifeng has quit [Ping timeout: 264 seconds]
<bb-m-labs> build #19 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/19
<bb-m-labs> build #344 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/344
<bb-m-labs> build #929 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/929
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
<GitHub182> [artiq] sbourdeauducq pushed 2 new commits to master: https://git.io/viccF
<GitHub182> artiq/master 2b28245 Sebastien Bourdeauducq: coredevice/ttl: fix imports
<GitHub182> artiq/master 1cb8f64 Sebastien Bourdeauducq: test: level-based TTL APIs (#218)
<bb-m-labs> build #20 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/20
<bb-m-labs> build #345 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/345
<bb-m-labs> build #930 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/930
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
digshadow has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
<sb0> whitequark, is rust-log_buffer going to be used for the runtime?
<sb0> does it really need to be in a separate repository, and if so, can you move it to m-labs on github?
fengling has joined #m-labs
<GitHub171> [artiq] sbourdeauducq pushed 2 new commits to master: https://git.io/viciv
<GitHub171> artiq/master 73bbe2a Sebastien Bourdeauducq: RELEASE_NOTES: clarify
<GitHub171> artiq/master 5fbcdac Sebastien Bourdeauducq: environment: call prepare for children by default, closes #545
rohitksingh_work has quit [Ping timeout: 265 seconds]
rohitksingh_work has joined #m-labs
rohitksingh_work has quit [Ping timeout: 250 seconds]
<whitequark> well, it's a separate published crate, and those generally go into separate repositories
<sb0> s/repository/published crate, then
<sb0> I'm not a fan of dependencies for doing simple tasks. keeping them in sync is a lot of work and frustration.
<whitequark> why would anyone need to keep this in sync? i don't foresee ever making another commit there
<sb0> even downloading the thing is annoying
<sb0> what if the repository gets moved or something
<whitequark> won't
<whitequark> crates.io is immutable. you can never remove anything from it
<sb0> mh
<whitequark> anyway you don't seem to have the same problem with depending on stuff in conda (which can and will move under us)
<whitequark> (and has in the past, even)
<sb0> no, remember I was against pyxdg
<whitequark> but we're still using lots of stuff from conda
<whitequark> anyway, it is a somewhat moot point because i was going to use other crates anyway. log, byteorder, etc
<whitequark> if you are especially concerned about the lifetime of crates.io, we can set up a mirror, this is an explicitly supported workflow
<whitequark> and otherwise it's no different from conda.
<sb0> is there any dependency from conda with fewer than 200 LOC we're using?
<sb0> yes. it's no different from conda. this is precisely why I'm worried
<bb-m-labs> build #21 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/21
<whitequark> what do you expect me to do anyway? inline everything into the build tree? that will in fact create "a lot of work and frustration"
<sb0> this is what the C runtime does and it's manageable
<whitequark> yeah, and the C runtime is also chock full of broken stuff. like your printf
<sb0> one printf bug isn't "chock full of broken stuff". and I'm talking about how to split and organize code, this has nothing to do with bugs inside functions
<whitequark> okay.
<whitequark> so, i see exactly one real concern. that crates.io goes down.
<whitequark> i propose addressing it by using https://github.com/weiznich/crates-mirror to mirror everything artiq needs on the buildserver
<bb-m-labs> build #346 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/346
<sb0> there's also all this work of packaging, uploading, downloading, and now mirroring <200LOC stuff
<sb0> potentially keeping track of versions
<sb0> it also doesn't play nice with git-bisect
<whitequark> how exactly it doesn't?
<whitequark> if you check out a commit, it has a Cargo.lock in it, which contains hashes of the exact versions that will be used for building every dependency
<sb0> if there is some API incompatibility and git-bisect tries to cross it, then it breaks
<bb-m-labs> build #931 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/931
<sb0> does this work when offline?
<whitequark> sure, it never makes network requests if you have stuff cached locally already
<whitequark> the only problem will be if the compiler version is switched, because that's not tracked in cargo.lock
<sb0> well, at least this seems to be done correctly
digshadow has quit [Ping timeout: 244 seconds]
<whitequark> it's done correctly by practically every package manager in existence, from PHP (!) to Ruby to OCaml
<whitequark> the only exception seems to be Python and Conda, for some reason I will never understand
<sb0> can you move the repos to m-labs?
<whitequark> can i just make a fork? github will probably break links...
<sb0> what links?
<sb0> from crates.io?
<whitequark> nah
<whitequark> i wrote about this library elsewhere
<sb0> thanks
<whitequark> do you want forks of everything or? should i fork libfringe there too?
<sb0> if you modified it for artiq and it's not going to be merged upstream, then yes
<whitequark> it's all merged, including or1k support
<sb0> alright
digshadow has joined #m-labs
digshadow has quit [Quit: Leaving.]
digshadow has joined #m-labs
digshadow has quit [Quit: Leaving.]
larsc has quit [*.net *.split]
acathla has quit [*.net *.split]
fengling has quit [Ping timeout: 240 seconds]
acathla has joined #m-labs
larsc has joined #m-labs
digshadow has joined #m-labs
rohitksingh has joined #m-labs
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
rohitksingh has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
sandeepkr has quit [Read error: No route to host]
sandeepkr has joined #m-labs
digshadow has quit [Ping timeout: 265 seconds]