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. -Brian ------------------------------------------------------------------------- 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 [email protected] https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
