On Tue, Nov 8, 2011 at 4:22 PM, David Barbour <dmbarb...@gmail.com> wrote: > Can you elucidate the distinctions between Nile and Gezira?
Nile is the programming language. Its syntax is a bit like Haskell. The high-level model of computation is a variation of Kahn process networks. The low-level part is a single-assignment, mathematics-oriented language for specifying the internal behavior of a process. > Based on the > (undocumented) code, I guess that Nile is more of a process model (queues, > heaps, threads) You're looking at the implementation details of one of the Nile execution environments (i.e., runtimes), the multithreaded C-based one. The queues, threads, etc. are used for implementing the process network part of Nile on multithreaded CPUs. > and Gezira is more of the rendering. Gezira is a 2D vector graphics renderer written in Nile. > In that case, it may be > Gezira I was thinking would compile well to shaders on a GPU. Certain parts of Gezira belong to the subset of Nile that could be efficiently executed on a GPU. > OpenCL is certainly one approach to leveraging a GPGPU to a reasonable > degree. Might be worth pursuing that route. But I've been surprised what can > be done with just the rendering pipelines. Pure functional graphics convert > to shaders + uniforms quite well. Certain stages of Gezira's rendering pipeline would not convert to shaders very well. Gezira covers different territory than, say, Pan, Vertigo, etc. None of Conal Elliot's "pure functional graphics" projects ever tried to perform, say, anti-aliased rasterization (AFAIK). They always relied on non-"pure functional" systems underneath to do the heavy lifting. Gezira, on the other hand, strives to do it all. And in a mostly functional way. The processes of Nile are side-effect free, with the exception of the final WriteToImage stage. Regards, Dan _______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc