Hi, Some FFI questions:
1. What is the difference between marking a function as effectful (or benignEffectful) when writing an FFI function, and giving it a transactional return type? Doesn't one have to do both - and if so, why the redundancy? 2. In the manual it says benignEffectful is for effects which are local to the session. Is this synonymous with request-local? I wouldn't expect it to be - in my understanding of the terms request and session, a user can make multiple simultaneous requests within a session. 3. What is the recommended way of passing back references to memory dynamically allocated from foreign code to Ur/Web code - assuming that the foreign code is going to *write* to that memory in future calls? Since Ur/web ints are C long longs (which should be at least as wide as a pointer, as far as I know) I guess casting a pointer to an Ur/web int and returning that is OK - whereas returning a blob isn't, because that would end up breaking purity on subsequent calls that write to the blob. I assume that the function should return a transaction *and* be marked as benignEffectful? -- Robin _______________________________________________ Ur mailing list [email protected] http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
