Manu wrote: > Say, I would like to use a hash function to encrypt users passwords, > since the Ur Basis library do not (yet) provide such a function, I am > thinking of using a C library. > How would one call C functions from Ur, can someone show me an example ? >
You would use the FFI, which is documented to some extent in the manual. Some day it would be good to have an Ur wiki that has targeted pages like one to answer your question. For now, the relevant documentation is in section 3.1, "Project Files." The directives related to the C FFI (there is also JavaScript FFI support) are "ffi," "header," and "link." Checking the manual now, I've realized that I inadvertently omitted an entry for "header"; that should be fixed in the next release. Basically, you build your C library and use "header" and "link" to specify what header file to include and which object files to link, when building Ur programs that use your library. You write an Ur .urs file giving a signature for your library, treated as a module. Then you can refer to this module just like any other in your Ur sources. See include/types.h for the types you should use in your C functions, and see include/urweb.h for the full set of public functions from the runtime system. There are many potential issues specific to particular applications, but it sounds like yours is pretty mundane. Especially if you want to write an FFI function that has side effects, or if you have a question about how to get the runtime system to do something in particular, please ask again on this list. _______________________________________________ Ur mailing list [email protected] http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
