<rjo>
sb0: yeah. i would just flatten the namespace like that and elevate all exports to the top.
<rjo>
sb0: true. but their repositories are lower case.
<rjo>
sb0: they don't seem to be skilled demonstrators. more like regular party people. no posters, no slogans... (or at few)
<rjo>
;)
<sb0>
the demonstrations are actually the most organized and clean I've ever seen. there are people to supply food/water/masks, pick up trash, provide first aid, etc.
<sb0>
it's even better organized than many music festivals I'd say :)
kristianpaul has quit [Quit: leaving]
kristianpaul has joined #m-labs
kristianpaul has joined #m-labs
fengling_ has joined #m-labs
fengling has quit [Ping timeout: 250 seconds]
fengling_ is now known as fengling
nengel has quit [Ping timeout: 272 seconds]
nengel has joined #m-labs
bentley`` has joined #m-labs
<rjo>
sb0: i was pondering how to best write a migen transform that automatically and recursively extracts submodules (that have been annotated by their ios), converts them into Instances and exports them as verilog files. but i got stuck because i need a transformer that runs on modules and not on fragments. any pointers or hints?
<rjo>
such a transform would be nice for quickly and roughly checking the individual modules contributions to resource usage during synthesis.
<sb0>
hmm, yes
<sb0>
it could unclutter the namespaces a little, too
<sb0>
first, I guess the Module class has to pass hierarchy information into the Fragment somehow, which it discards atm
<sb0>
another problem is that when splitting into modules, the verilog ports are not transparent
<sb0>
and how would you handle one module that has "comb += x.eq(1)", and then one or several other modules that have code such as "comb += If(y, x.eq(0))"?
<sb0>
Migen permits that, with semantics that depend on the order of those statements (which in the case of submodules, would be determined by the order the submodules are added)
<sb0>
the verilog converter would do something like "always @(*) begin x <= 1; if(y) x <= 0; end"
<sb0>
and those two statements are not easy to put into different modules
<sb0>
especially with the various idiosyncrasies that Verilog has regarding module connections
<sb0>
I guess those cases should be detected, and the respective modules merged
xiangfu has joined #m-labs
<GitHub52>
[ARTIQ] sbourdeauducq pushed 4 new commits to master: http://git.io/h5jZBg
<GitHub52>
ARTIQ/master 5099643 Sebastien Bourdeauducq: devices/rtio_core: rename RTIOCounter to RTIOIn and document
<GitHub52>
[artiq] sbourdeauducq pushed 1 new commit to master: http://git.io/MgwbCw
<GitHub52>
artiq/master 73d0a84 Sebastien Bourdeauducq: doc: various cleanups
siruf has joined #m-labs
<GitHub103>
[artiq] sbourdeauducq pushed 1 new commit to master: http://git.io/gXZ3IQ
<GitHub103>
artiq/master 76fed11 Sebastien Bourdeauducq: rtio: raise RTIOSequenceError exceptions when events are not submitted in-order
_florent_ has joined #m-labs
kyak has quit [Ping timeout: 260 seconds]
xiangfu has quit [Remote host closed the connection]
kyak has joined #m-labs
kyak has joined #m-labs
<rjo>
sb0: yes. i didn't think of multiple assignments. but in this case at least the signal would be an output from the module and synthesis should fail nicely.
<rjo>
sb0: but it does look more complicated than i expected. i'll stash the idea for now.
<sb0>
rjo, have you used https://libgit2.github.com and know what happens when you are accessing a repository while another process modifies it (e.g. while doing a "git push" to it)?
<ysionneau>
not sure about full compatibility of libgit2 and the official git
<sb0>
according to #libgit2 there should be no problem ...
<ysionneau>
ok, let's hope so
<ysionneau>
what do you wanna do with libgit2 ?
<sb0>
manage experiment code/parameters histories in artiq
<ysionneau>
you want to avoid users to use git CLI directly?
<sb0>
no, but the system will probably need to e.g. retrieve code at a particular revision before running it, or just know what the latest revision ID is to associate it with the results/logs
<ysionneau>
ok
mumptai has joined #m-labs
<rjo>
sb0: i always believed git did locking.
<rjo>
sb0: what about GitPython?
<rjo>
sb0: but i have never really used libgit2. certainly not explored its limits.