On 04/14/2016 07:14 AM, Artyom Shalkhakov wrote:
2016-04-14 17:02 GMT+06:00 Adam Chlipala <[email protected]>:
On 04/14/2016 06:53 AM, Artyom Shalkhakov wrote:
there is this question: what C types do [list string] and [option string]
map to? I think that [option string] probably maps to a nullable pointer to
uw_Basis_string. What about the list constructor?

That's a tricky one.  There is actually no support for parametric
polymorphism in the FFI.  Every [list a] type is compiled to a separate C
struct.

Okay. The use-case is this: I'm decoding/encoding URI parameters in an
Ur/Web program, naively. That involves a lot of string concatenation.
Is there another (preferably external-dependency-free) approach to
this?

Have you tried using normal Ur/Web code for that operation? I think there's a nontrivial chance that you'll get better performance that way than with C FFI code, because the compiler has special optimizations for string concatenation. They kick in when that concatenation flows directly into the value that is being returned as the HTTP body, whether it's HTML or a string in a blob.

It's probably possible to get those optimizations into play in other situations, too, with a moderate amount of compiler work.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to