2014-03-04 23:39:11 +0000 <hyperthunk> anyways, point being, that if you're using distributed-process-platform and it's `send` override, there's nothing to worry about so long as you're personally happy that the NFData and Binary instances work the same
2014-03-04 23:39:22 +0000 <hyperthunk> (i.e., there's nothing that would crash one instance but not the other)
2014-03-04 23:39:39 +0000 <hyperthunk> we could just make that the default
2014-03-04 23:39:53 +0000 <hyperthunk> there's still an issue to be understood here.
2014-03-04 23:39:59 +0000 <hyperthunk> if you send remotely, you'll crash the caller
2014-03-04 23:40:05 +0000 <hyperthunk> (the binary instance fails)
2014-03-04 23:40:13 +0000 <hyperthunk> if you send locally, you'll crash the receiver!
2014-03-04 23:40:18 +0000 <hyperthunk> (NFData instance fails)
2014-03-04 23:40:24 +0000 <carter> crash?
2014-03-04 23:40:25 +0000 <hyperthunk> sorry, not NFData instance fails
2014-03-04 23:40:27 +0000 <carter> how
2014-03-04 23:40:50 +0000 <hyperthunk> carter: if you send a record with a field set to undefined and it's passed to serialize, the binary instance will crash
2014-03-04 23:40:58 +0000 <carter> ok
2014-03-04 23:40:59 +0000 <hyperthunk> the process calling send
2014-03-04 23:41:01 +0000 <carter> thats your fual t:)
2014-03-04 23:41:03 +0000 <hyperthunk> will crash
2014-03-04 23:41:05 +0000 <hyperthunk> right, exaclyt
2014-03-04 23:41:06 +0000 <carter> thats a user problem
2014-03-04 23:41:08 +0000 <hyperthunk> indeed
2014-03-04 23:41:09 +0000 <hyperthunk> BUT
2014-03-04 23:41:27 +0000 <carter> hyperthunk: oooo
2014-03-04 23:41:28 +0000 <carter> oooo
2014-03-04 23:41:29 +0000 <carter> ooooo
2014-03-04 23:41:29 +0000 <hyperthunk> if you call unsafeSend, the process that passes that "bad" data will not be the one that crashes
2014-03-04 23:41:30 +0000 <carter> oooo
2014-03-04 23:41:31 +0000 <carter> ooooo
2014-03-04 23:41:40 +0000 <hyperthunk> it'll be the one that receives it and tries to evaluate that 'undefined' field
2014-03-04 23:41:42 +0000 <carter> oooo
2014-03-04 23:41:43 +0000 <hyperthunk> you see.
2014-03-04 23:41:43 +0000 <carter> oooo
2014-03-04 23:41:45 +0000 <carter> hyperthunk: nope
2014-03-04 23:41:46 +0000 <carter> solution
2014-03-04 23:41:58 +0000 <hyperthunk> I'm glad you're excited about this. ;)
2014-03-04 23:41:59 +0000 <carter> have an application specific safe serialize
2014-03-04 23:42:00 +0000 <carter> that