Brian Paul wrote: > Zack Rusin wrote: >> On Thursday 17 May 2007 05:36:45 pm Keith Whitwell wrote: >>>>> I think the Zack/Roberto LLVM tree has done just this. Unfortunately >>>>> for this immediate problem, they target a whole new intermediate >>>>> representation. >>>> Zack, what tools did you use for the front-end/parser? I've been >>>> looking over LLVM but I haven't seen any sign of a parser generator. >> Yeah, that's where Roberto came in :) We used QLALR which is simply amazing >> and for those who ever used Bison a lot more convenient than what we had >> right now. >> >> http://labs.trolltech.com/page/Projects/Compilers/QLALR >> >> Initially we used QLALR with Flex, then we just went only with QLALR (Flex >> is >> really bad when its come to its usage in libraries and there was no real >> reason for it). If you ever used yacc then you can use qlalr right away. >> QLALR generated files are simply so much better it was just worth it. I >> think >> Roberto could write a book about why QLALR just rocks and it makes sense to >> use it in this case (granted that the book would have limited audience and >> I'll let him do that once his back) rather than anything else. >> >>> In fact I think they've used Roberto's QLALR compiler-generator, which >>> in itself raises some issues about licensing. >>> >>> QLALR is GPL'ed, what is the GPL-status of the sources it generates?? >> Technically I think by default they inherit the license of the grammar. Now >> having said that, it's of course up to developer to decide what is the >> license of the grammar. We'll license everything under the same standard >> Mesa >> MIT license. >> But yeah, the glsl.g grammar that we have there is extremely good, Roberto >> did >> a wonderful job and imho it would just make sense to use it with or without >> LLVM (of course I do love that code so I am very biased). > > Zack, could you make your code (at least the parser) available somewhere > so I can take a look? > > One problem with the current GLSL parser in Mesa is that it doesn't > report the position (line number) for errors in shaders. The location > of each token from the input stream needs to get propogated up to the > AST so that errors can be properly reported. It's not a huge deal now > because shaders are relatively small, but that'll change.
http://gitweb.freedesktop.org/?p=users/zack/mesa.git;a=shortlog;h=llvm Keith ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev