lekernel changed the topic of #milkymist to: Milkymist One, Migen, Milkymist SoC & Flickernoise :: Logs: http://en.qi-hardware.com/mmlogs
jimmythehorn has quit [Quit: jimmythehorn]
xiangfu has joined #milkymist
gbraad has joined #milkymist
gbraad has quit [Changing host]
gbraad has joined #milkymist
antgreen has joined #milkymist
xiangfu has quit [Ping timeout: 264 seconds]
xiangfu has joined #milkymist
qwebirc45275 has joined #milkymist
qwebirc45275 has quit [Client Quit]
xiangfu has quit [Ping timeout: 255 seconds]
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 264 seconds]
jaeckel_ is now known as jaeckel
Martoni has joined #milkymist
lekernel has joined #milkymist
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 256 seconds]
<larsc> lekernel: that the remaining non-deterministines is small enough, so I could verfiy that things still work
<larsc> at least the generated code is the same
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 256 seconds]
elldekaa_ has joined #milkymist
xiangfu has joined #milkymist
<lekernel> all non-determinism is bugs and should go...
<lekernel> I think I just found another one... let me check
* lekernel is just back from TU
xiangfu has quit [Ping timeout: 264 seconds]
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 260 seconds]
<lekernel> larsc, better now? send me a diff of the changed lines if you still get problems
xiangfu has joined #milkymist
<GitHub44> [migen] sbourdeauducq pushed 1 new commit to master: http://git.io/Zqjb1Q
<GitHub44> migen/master 5adab17 Sebastien Bourdeauducq: flow/actor/filter_endpoints: deterministic order
<lekernel> there's still an issue in asmicon but I'm not sure you're using it now
<lekernel> grmbl I wish there were an option in python to make ids and iteration orders on sets/dictionaries deterministic
<lekernel> this thing is just super-annoying with migen
<lekernel> I wonder how much performance they get by dropping deterministic iteration orders... and it's not like python is optimized for performance to begin with
<wpwrak> does iteration over the same set/dict yield different orders ? or do you mean iteration over equivalent but not identical ones ?
<lekernel> the iteration order will be different between runs of the same program
<lekernel> if you don't modify the set/dict, and don't re-run the program, the order is the same
<wpwrak> hmm, you could sort by content if you really really need this sort of determinism ...
<wpwrak> it's interesting that order would change per invocation if everything else is identical
<larsc> I think there is a OrderedDict
<lekernel> sorting by content is basically what I'm doing right now, but I have to do it manually and spot problematic code
<wpwrak> may it's caused by some address space layout randomization. you could try to turn that off. ... or of course use lars' suggestion :)
<lekernel> also, sometimes you have dict/sets of other objects, then python uses the id() by default, which is whatever address it got from malloc() - another source of non determinism
<lekernel> migen has a HUID class that makes the id() an object creation counter instead, but again you have to use that manually
<lekernel> OrderedDict isn't the default, if you use the syntactic sugar you get a normal non-deterministic dict
<lekernel> and there's no ordered set
<lekernel> and object.__dict__ is not an OrderedDict but the crappy one
<lekernel> lots of time wasted to that little detail
<larsc> well, a set is a dict where all the values are None
<lekernel> yes, but again - if you build a set with {item1, item2, ...} that's not what you get
<larsc> yes
<larsc> because normally you don't need this
<lekernel> can't they just make all sets and dicts OrderedSet/OrderedDict and be done with that?
xiangfu has quit [Ping timeout: 264 seconds]
<larsc> send a patch ;)
<lekernel> yeh, a "PEP" with all the bureaucracy...
<lekernel> pick your evil
<lekernel> (and then, assuming it gets through, people like debian users will still have problems for years)
_whitelogger has joined #milkymist
<lekernel> larsc, do you still have non-determinism problems after my last commit?
<larsc> lekernel: I'll test when I'm back home
xiangfu has joined #milkymist
<lekernel> the unordered set/dicts really seem to cause more problems than they solve
<lekernel> ah: On Python 3.3 and greater, hash randomization is turned on by default.
<lekernel> I had Python 3.2 before... this explains some of the new problems
xiangfu has quit [Ping timeout: 260 seconds]
<lekernel> otoh this can be used as another argument in favor of orderedsect/ordereddict by default... anyone feels like writing a PEP?
<lekernel> they even get non-determinism in their own compiler now :-)
<lekernel> and then we could also (ab)use keyword arguments to replace .eq()
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 276 seconds]
elldekaa_ has quit [Ping timeout: 246 seconds]
antgreen has quit [Ping timeout: 272 seconds]
xiangfu has joined #milkymist
xiangfu_ has joined #milkymist
xiangfu_ has quit [Read error: Connection reset by peer]
xiangfu has quit [Ping timeout: 256 seconds]
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 252 seconds]
xiangfu has joined #milkymist
xiangfu has quit [Ping timeout: 264 seconds]
Martoni has quit [Remote host closed the connection]
antgreen has joined #milkymist
Martoni has joined #milkymist
gbraad has quit [Ping timeout: 245 seconds]
antgreen has quit [Ping timeout: 252 seconds]
jimmythehorn has joined #milkymist
aeris has quit [Ping timeout: 246 seconds]
aeris has joined #milkymist
antgreen has joined #milkymist
Martoni has quit [Quit: ChatZilla 0.9.90 [Firefox 19.0.2/20130307164200]]
antgreen has quit [Ping timeout: 264 seconds]
antgreen has joined #milkymist
antgreen has quit [Ping timeout: 264 seconds]
xiangfu has joined #milkymist
<larsc> found the cause for last non determinisic naming
<larsc> it's in the very core of migen itself
xiangfu has quit [Ping timeout: 255 seconds]
xiangfu has joined #milkymist
Gurty has quit [Ping timeout: 240 seconds]
antgreen has joined #milkymist
Gurty has joined #milkymist
xiangfu has quit [Ping timeout: 260 seconds]
antgreen has quit [Ping timeout: 276 seconds]
Alarm has joined #milkymist
Alarm has quit [Ping timeout: 256 seconds]
Alarm has joined #milkymist
Alarm_ has joined #milkymist
Alarm has quit [Read error: Connection reset by peer]
Alarm_ is now known as Alarm
Alarm has quit [Quit: ChatZilla 0.9.90 [Firefox 19.0.2/20130307023931]]
<lekernel> larsc, that is...?
lekernel has quit [Ping timeout: 272 seconds]
antgreen has joined #milkymist
lekernel has joined #milkymist
lekernel has quit [Client Quit]